(57)【要約】【課題】  ユーザからの指示に応じて、適切な移動方法で移動を行うロボット装置の提供。【解決手段】  自律的に動作を行うロボット装置は、自装置の移動を行う移動部４と、目標物の位置情報を定期的に取得する目標物位置取得部３８とを備える。移動方法判断・指示部３５は、ユーザから移動に係る指示を入力し、移動先を固定の位置情報で指定できるものであるか否かを判断し、指定できると判断した場合には、位置移動制御部３６による制御を行い、指定できないと判断した場合には、目標物位置取得部３８から定期的に位置情報を取得する追跡移動制御部３７による制御を行って、移動部４を動作させる。【選択図】  図３
2006263844.tif 000002
【特許請求の範囲】
【請求項１】
自律的に動作を行うロボット装置において、
自装置の移動を行う移動手段と、
目標物の位置情報を定期的に取得する目標物位置取得手段と、
移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１移動制御手段と、
移動先を目標物で指定され、該目標物の位置情報を前記目標物位置情報取得手段から定期的に得る毎に、得られた目標物の位置情報へ向けて移動させるよう前記移動手段を制御する第２移動制御手段と、
ユーザから移動に係る指示を入力する指示入力手段と、
前記指示入力手段で入力された移動に係る指示が、移動先を固定の位置情報で指定できるものであるか否かを判断し、指定できるものと判断した場合、前記第１移動制御手段へ移動先を固定の位置情報で与えて動作させ、指定できないものと判断した場合、前記第２移動制御手段へ移動先を目標物で与えて動作させる判断手段とを備えたことを特徴とするロボット装置。
【請求項２】
移動のための地図情報を記憶する記憶手段を備え、
前記判断・指示手段は、入力された移動に係る指示が、前記地図情報に含まれているか否かを調べることにより、移動先を固定の位置情報で指定できるか否かを判断するようにしたことを特徴とする請求項１記載のロボット装置。
【請求項３】
前記第１移動制御手段は、現在の自装置の位置情報から前記指定された位置情報までの移動経路を生成し、生成された移動経路に基づいて前記移動手段を移動させるよう制御し、
前記第２移動制御手段は、該目標物の位置情報を前記目標物位置情報取得手段から定期的に得る毎に、現在の自装置の位置情報から目標物の位置情報に向けた移動経路を生成、更新し、更新された移動経路に基づいて自装置の移動を繰り返させるよう制御するようにしたことを特徴とする請求項１または請求項２に記載のロボット装置。
【請求項４】
前記移動経路は、地図上の絶対位置に基づくことを特徴とする請求項３記載のロボット装置。
【請求項５】
前記移動経路は、自装置に対する方向、距離に基づくことを特徴とする請求項３記載のロボット装置。
【請求項６】
前記目標物位置取得手段は、前記第２移動制御手段に指定された目標物を含む画像をカメラで撮影し、撮影された該画像に基づいて位置情報を算出するようにしたことを特徴とする請求項１乃至請求項５の何れかに記載のロボット装置。
【請求項７】
前記指示入力手段は、ユーザの発話を音声入力し、音声認識して得た認識結果を解決するための動作を決定し、その動作を実現させるために生成された指示を入力するものであることを特徴とする請求項１乃至請求項６の何れかに記載のロボット装置。
【請求項８】
自律的に動作を行うロボット装置において、
自装置の移動を行う移動手段と、
移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１移動制御手段と、
移動先を目標物で指定され、該目標物へついていくよう前記移動手段を制御する第２移動制御手段と、
ユーザから移動に係る指示を入力する指示入力手段と、
前記指示入力手段で入力された移動に係る指示が、移動先を固定の位置情報で指定できるものである場合には、前記第１移動制御手段へ移動先を固定の位置情報で与えて動作させ、移動する目標物である場合には、前記第２移動制御手段へ移動先を目標物で与えて動作させる判断手段とを備えたことを特徴とするロボット装置。
【請求項９】
自装置の移動を行う移動手段と、指定された目標物の位置情報を定期的に取得する目標物位置取得手段と、移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１移動制御手段と、移動先を目標物で指定され、該目標物の位置情報を前記目標物位置情報取得手段から定期的に得る毎に、得られた目標物の位置情報へ向けて移動させるよう前記移動手段を制御する第２移動制御手段とを備え、自律的に動作を行うロボット装置の移動方法において、
ユーザから移動に係る指示を入力し、
前記指示入力手段で入力された移動に係る指示が、移動先を固定の位置情報で指定できるものであるか否かを判断し、指定できるものと判断した場合、前記第１移動制御手段へ移動先を固定の位置情報で与えて動作させ、指定できないものと判断した場合、前記第２移動制御手段へ移動先を目標物で与えて動作させるようにすることを特徴とするロボット装置の移動方法。
【請求項１０】
自装置の移動を行う移動手段と、目標物の位置情報を定期的に取得する目標物位置取得手段とを備え、自律的に動作を行うロボット装置に実行させるプログラムであって、
移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１プログラムコードと、
移動先を目標物で指定され、該目標物の位置情報を前記目標物位置情報取得手段から定期的に得る毎に、得られた目標物の位置情報へ向けて移動させるよう前記移動手段を制御する第２プログラムコードと、
ユーザから移動に係る指示を入力を受け付ける第３プログラムコードと、
前記第３プログラムコードの実行により受け付けられた移動に係る指示が、移動先を固定の位置情報で指定できるものであるか否かを判断し、指定できるものと判断した場合、前記第１プログラムコードへ移動先を固定の位置情報で与えて動作させ、指定できないものと判断した場合、前記第２プログラムコードへ移動先を目標物で与えて動作させる第４プログラムコードとを備えたことを特徴とするロボット装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ユーザからの移動要求に応じて移動するロボット装置、ロボット装置の移動方法、および、プログラムに関する。
【背景技術】
【０００２】
従来より、産業用ロボットにおいては、目標物に対しトラッキング制御を行うといった明確に位置の定まっていない目標物に対する移動方法と、その後、初期位置に戻る移動方法とを繰り返し行うよう予めプログラミングし、動作させるものがあった。
【０００３】
また、自動車の自動走行に関し、通常時は既定経路に沿って走行し、障害物遭遇の可能性を推定し可能性が高まったときに、先行車両をカメラによるセンシングによって追従する走行軌跡経路に基づいて走行を行う、といった２つの走行（移動）方法を切り替えて移動を行うものがあった（例えば、特許文献１）。このような自動車における２つの移動方法の切り替えは、ロボット装置の移動に置き換えて考えた時、前者（既定経路による走行）は、ある静的な目的地までの移動経路を生成し、この移動経路に従って移動することに相当し、後者（走行軌跡経路による走行）は、ある動的な人（物）についていく移動経路を逐次生成し、この移動経路に従って移動することに相当する。
【特許文献１】特開２００４−７８３３３公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記で説明した産業用ロボットでは、移動する目標物を追跡する移動方法と固定的な目的地への移動方法とを行うことができたが、産業用ロボットゆえに、これら方法の繰り返し手順を予め定めて利用するのみであった。
【０００５】
また、上記で説明した自動車の自動走行においては、既定経路による走行中に、走行軌跡経路による走行に切り替えることができたが、これは、ロボット装置に置き換えたときには、ひとつの目的を達成する際に生じた緊急時の割り込みによる切り替えに過ぎない。
【０００６】
一方、ロボット装置では、その移動方法として固定的な目的点への移動方法や移動する目標物を追跡する移動方法などの個々の技術については、様々な検討がなされているが、近年期待が高まってきている家庭等で自律的に動作するロボット装置へ、このような様々な移動技術をどのように組み合わせて利用するかについてはまだまだ未知であった。特に、自律的に移動するロボット装置では、上記した産業用ロボットで適用したような予め繰り返し手順を定めることはできない。
【０００７】
従って、上記問題点を解決するために、本発明は、ユーザからの指示に応じて、適切な移動方法で移動を行うロボット装置、ロボット装置の移動方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、自律的に動作を行うロボット装置において、自装置の移動を行う移動手段と、目標物の位置情報を定期的に取得する目標物位置取得手段と、移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１移動制御手段と、移動先を目標物で指定され、該目標物の位置情報を前記目標物位置情報取得手段から定期的に得る毎に、現在の自装置の位置情報から目標物の位置情報へ向けた自装置の移動を繰り返させるよう前記移動手段を制御する第２移動制御手段と、ユーザから移動に係る指示を入力する指示入力手段と、前記指示入力手段で入力された移動に係る指示が、移動先を固定の位置情報で指定できるものであるか否かを判断し、指定できるものと判断した場合、前記第１移動制御手段へ移動先を固定の位置情報で与えて動作させ、指定できないものと判断した場合、前記第２移動制御手段へ移動先を目標物で与えて動作させる判断手段とを備えた。
【０００９】
また、本発明は、自律的に動作を行うロボット装置において、自装置の移動を行う移動手段と、移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１移動制御手段と、移動先を目標物で指定され、該目標物へついていくよう前記移動手段を制御する第２移動制御手段と、ユーザから移動に係る指示を入力する指示入力手段と、前記指示入力手段で入力された移動に係る指示が、移動先を固定の位置情報で指定できるものである場合には、前記第１移動制御手段へ移動先を固定の位置情報で与えて動作させ、移動する目標物である場合には、前記第２移動制御手段へ移動先を目標物で与えて動作させる判断手段とを備えた。
【００１０】
また、本発明は、自装置の移動を行う移動手段と、指定された目標物の位置情報を定期的に取得する目標物位置取得手段と、移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１移動制御手段と、移動先を目標物で指定され、該目標物の位置情報を前記目標物位置情報取得手段から定期的に得る毎に、現在の自装置の位置情報から目標物の位置情報へ向けた自装置の移動を繰り返させるよう前記移動手段を制御する第２移動制御手段とを備え、自律的に動作を行うロボット装置の移動方法において、ユーザから移動に係る指示を入力し、  前記指示入力手段で入力された移動に係る指示が、移動先を固定の位置情報で指定できるものであるか否かを判断し、指定できるものと判断した場合、前記第１移動制御手段へ移動先を固定の位置情報で与えて動作させ、指定できないものと判断した場合、前記第２移動制御手段へ移動先を目標物で与えて動作させるようにした。
【００１１】
また、本発明は、自装置の移動を行う移動手段と、目標物の位置情報を定期的に取得する目標物位置取得手段とを備え、自律的に動作を行うロボット装置に実行させるプログラムであって、移動先を固定の位置情報で指定され、現在の自装置の位置情報から該指定された位置情報までを移動させるよう前記移動手段を制御する第１プログラムコードと、  移動先を目標物で指定され、該目標物の位置情報を前記目標物位置情報取得手段から定期的に得る毎に、現在の自装置の位置情報から目標物の位置情報へ向けた自装置の移動を繰り返させるよう前記移動手段を制御する第２プログラムコードと、ユーザから移動に係る指示を入力を受け付ける第３プログラムコードと、前記第３プログラムコードの実行により受け付けられた移動に係る指示が、移動先を固定の位置情報で指定できるものであるか否かを判断し、指定できるものと判断した場合、前記第１プログラムコードへ移動先を固定の位置情報で与えて動作させ、指定できないものと判断した場合、前記第２プログラムコードへ移動先を目標物で与えて動作させる第４プログラムコードとを備えた。
【発明の効果】
【００１２】
本発明によれば、ユーザからの指示に応じて、適切な移動方法によって移動を行うことができるロボット装置が実現できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を用いて説明する。
【００１４】
図１は、本実施の形態のロボット装置の外観を示しており、（ａ）は正面から見た図であり、（ｂ）が側面から見た図である。本実施の形態のロボット装置は、人間と類似した形状であって、図１中、１は首を含む顔部、２は胴部、３はアーム部、４は移動部を示している。
【００１５】
顔部１は、音声を出力するスピーカ１１を含む口部５と、音声を入力するマイク１２を含む２つの耳部６と、外部の映像を入力するカメラ１３を含む２つの目部７とを備えている。アーム部３は、手や、幾つかの関節を備え、人間の型、腕、手に相当する動きを行うものである。
【００１６】
移動部４は、タイヤ８を４つ備えており、ロボット装置が移動する床面に対し、ロボット装置（の全体）を直進・後退したり左右へ方向を変えたりするもので、人間の足に相当する。
【００１７】
胴部２は、ロボット装置の中心的な部位であり、顔部１（の首）、アーム部３、移動部４とそれぞれ回転機構を介して接続されており、また、胴部２の内部には、ロボット装置の動作や情報処理などの制御全般を行うロボットシステム１０が内蔵されている。
【００１８】
図２は、ロボットシステム１０のシステム構成を示している。
【００１９】
ロボットシステム１０は、ロボット装置自身の動作や処理を決定するためのシステム制御部２１と、システム制御部２１で動作や処理を決定するための情報（以下、制御入力情報と称す）を入力したり、システム制御部２１で決定された動作や処理の指示情報（以下、制御出力情報と称す）を受けて実行するための各種サブシステム２２・・・２７とに大別される。
【００２０】
音声処理サブシステム２２は、Ａ／Ｄ変換やＤ／Ａ変換、音声認識、音声合成などの音声処理全般を行うものであって、マイク１２を介して入力された外界の音声のうち、システム制御部２１で必要とされる制御入力情報をシステム制御部２１へ供給したり、システム制御部２１や音声処理サブシステム２２の内部で生成したロボット装置が外界へ発する言葉、等をスピーカ１１を介して音声出力するための処理を行ったりするものである。また、音声処理サブシステム２２は、例えば、入力した音声認識が上手く出来なかった時に、システム制御部２１を介すことなく、音声合成を介して聞き返すといった音声出力を自動的に行う（音声処理サブシステム２２の内部で閉じて処理される）ような処理を含んでいても良い。
【００２１】
画像処理サブシステム２３は、カメラ１３から入力された画像を画像認識し、画像認識された情報のうちシステム制御部２１で必要とされる制御入力情報を全体制御部２１へ供給するものである。また、画像処理サブシステム２３は、二つのカメラ１３を用いた三角測量法による撮像対象物の距離測定を行なう処理を含む。更に、画像処理サブシステム２３は、撮像を繰り返し行ってカメラ１３の方向を撮像対象を常に追跡するよう制御する、従来より良く知られるトラッキング機能を備える。
【００２２】
アームサブシステム２４は、システム制御部２１から制御出力情報を受け取って、アーム部３の各関節の物理駆動量を決定しアーム部３を動作させるものである。胴回転サブシステム２５は、システム制御部２１から制御出力情報を受け取って、移動部４に対する胴部２の物理回転量を決定し胴部２を回転動作させるものである。首回転サブシステム２６は、システム制御部２１から制御出力情報を受け取って、胴部２に対する顔部１（の首）の物理回転駆動量を決定し、顔部１（の首）を回転動作させるものである。移動サブシステム２７は、システム制御部２１から制御出力情報を受け取って、各タイヤ８の回転量を決定（直進の場合は単一に決定しても良い）し、各タイヤ８を回転動作させるものである。なお、一定時間内における回転量を調整することによって、速度を調整することも可能である。
【００２３】
システム制御部２１は、ロボット装置自身の動作や処理を決定するものであり、外界の状態や内部の状態（例えば、ロボット装置の姿勢、バッテリー残量、等）を制御入力情報として受け取って、例えば、予め定めたルールなどに従って一以上の動作や処理を決定し、それら動作や処理が可能な一以上のサブシステムへ制御出力情報を出力する。また、例えば計算処理などの静的な処理は、サブシステムで行わせること無くシステム制御部２１で行うようにしても良い。
【００２４】
なお、上記の説明において、全てのサブシステム２２−２７間はシステム制御部２１を経由するように示したが、サブシステム２１−２７間で直接データのやり取りを行う場合もあってもよい。また、システム制御部２１及び各サブシステム２２−２７は、特に図示していないが、少なくともプロセッサと揮発性メモリとを備えており、更に必要に応じて、不揮発性メモリを備えていても良いことは勿論である。
【００２５】
なお、本実施の形態のロボット装置は、上記のサブシステム２２〜２７を備えるようにしたが、これらに限らず他に、例えば、無線機能や表示機能などが必要なロボット装置を提供する場合には、無線通信処理を行う無線サブシステムや、別途表示装置を取り付けるとともに表示制御を行う表示サブシステムや、該表示サブシステムと連動しユーザからタッチすることにより入力をなどを行えるタブレットサブシステムなど、様々なサブシステムを備えるようにしてもよい。
【００２６】
次に、図３は、本実施の形態の移動制御に係る機能ブロックを示した図である。
【００２７】
ユーザは、発話や、タブレットを介したボタン選択、文字記述や、ジェスチャー（身振り）などの入力方法によってロボット装置へ行ってもらいたい要求を行う。このユーザの要求は、マイク１２や、タブレット（図示しない）や、カメラ１３などの入力装置を介して、ユーザ指示変換部３１へ入力される。
【００２８】
ユーザ指示変換部３１は、入力されたユーザの要求を、その入力方法に応じた認識、解析などの諸処理を行うことにより、予め定められた内部データ形式に変換し、変換結果を出力する。なお、この変換結果を以後、ユーザ命令と呼ぶこととする。
【００２９】
ここで、例えば発話による入力の場合には、ユーザ指示変換部３１は、マイク１２から入力されたアナログ信号をデジタル変換し、音声認識、意味解析、等をおこなって、ユーザ命令を出力する。また、例えばタブレットによるボタン選択の場合には、ユーザ指示変換部３１は選択されたボタンが示す情報に対応するユーザ命令を出力し、また文字記述の場合には、ユーザ指示変換部３１は文字認識、意味解析、等をおこなって、ユーザ命令を出力する。また、例えばジェスチャーによる入力の場合には、ユーザ指示変換部３１は、カメラ１３から順次入力された画像から、特徴抽出、動き抽出、動きに対する意味解析処理、等をおこなって、ユーザ命令を出力する。
【００３０】
ここで、ユーザ指示変換部３１の一例として、ユーザがロボット装置へ行ってもらいたい要求を発話によって行われた際の例を図４を用いて説明する。
【００３１】
ユーザからの要求は、音声としてマイク１２から入力され、入力されたアナログ信号をＡ／Ｄ変換部４１によって、デジタル信号に変換され、音声認識部４２へ入力される。
【００３２】
音声認識部４２は、入力されたデジタル信号を音声認識用辞書４３を用いて認識し、認識結果としてテキストデータを出力するものである。
【００３３】
意味解析部４４は、入力されたテキストデータを意味解析用辞書４５を用いて意味解析し、解析結果に基づいて、予め定めた内部データ形式に従うユーザ命令を生成し出力する。例えば、「キッチンへ行って」、「リモコンを取って」などの単純なユーザの要求であれば、意味解析を特に行う必要はないが、「（初期位置へ）戻って」、「Ａさんのこと見ていて」などの文章の理解が必要なユーザの要求であれば、ユーザが意図することを考慮した意味解析が必要である。従って、意味解析部４４を備えることにより、様々なユーザの要求を受理することができるようになる。また、内部データ形式の一例として、ここでは、「述語：目的語（：前置詞）」の形式で出力するとする。例えば、ユーザ発話による入力が「キッチンへ行って」の場合には「ｇｏ：ｋｉｔｃｈｅｎ：ｔｏ」となる。
【００３４】
なお、ここで示した例の変形例としては、例えば、ユーザからの音声入力できる語彙に制約を持たせれば（言い換えれば複雑な文脈などは対象とせず予め定めた単純な命令のみ扱えるようにすれば）、意味解析部４４及び意味解析用辞書４５は不要になる。この場合、音声認識用辞書４３の代わりに、音声入力とユーザ命令とを予め対応付けたユーザ命令付き音声認識−ユーザ命令対応辞書を予め格納しておけば良い。
【００３５】
図３の説明に戻る。
【００３６】
タスク生成部３２は、ユーザ指示変換部３１から出力されたユーザ命令を入力し、このユーザ命令に基づいて、ユーザ命令を解決するためのロボット装置の動作を決定し、その動作を実現させるための指示として一以上のタスクを生成する。なお、生成されるタスクが複数ある場合には、その実行順（並列実行を含む）なども規定される。
【００３７】
ここでタスク生成部３２がユーザ命令からタスクを生成するまでの一例を示す。ユーザが発話した「ビールを取って」のユーザ命令が「ｔａｋｅ：ｂｅｅｒ」である場合に、ロボット装置は、例えば、今いる位置から冷蔵庫まで行くタスク、冷蔵庫を開けるタスク、ビールを見つけるタスク、ビールを掴むタスク、冷蔵庫を閉めるタスク、ユーザのそばまで移動するタスク、といった一連のタスクをこの順で行う必要がある。従って、タスク生成部３２は、これらの各タスクを生成し、及び、この順序で実行するよう規定する。なお、ここでは理解しやすいように、各タスクを分かりやすい言葉で説明したが、実際は、これらタスクは、後述する各機能処理部で実行できる形式の表現となっていることは勿論である。つまり、タスクは、一つの機能処理部に指示するためのレベルで表現される。
【００３８】
また、説明を簡単にするために記載を省略したが、タスク生成部３２は、外界の状況（例えば、障害物がある、暗い、暑い、・・・）や内部の状態（例えば、どの方向を向いている、右アームを上げている、発話中、・・・）が加味されて決定されるものであり、本実施の形態においても同様である。
【００３９】
次に、タスク実行指示部３３は、タスク生成部３２で生成されたタスクのうち、移動に係るタスクを除くタスクを、機能処理部３４・・・３４へ供給することにより実行指示する。一方、タスク実行指示部３３は、タスク生成部３２で生成されたタスクがロボット装置の移動に係るタスクの場合には、移動方法判断・指示部３５へ供給する。タスク実行指示部３３は、例えば、各タスクとそれを処理する機能処理部、または、後述の移動方法判断・指示部３４の名称（識別子）を対応付けたテーブル（図示しない）を備えておくことにより、タスク生成部３２からのタスクを一意の機能処理部３４または移動方法判断・指示部３５へ指示できる。
【００４０】
機能処理部３４・・・３４は、実際に機能を実行する部位、例えば、アーム駆動、や、話す、などの各機能を処理する各部位のことを指すが、ここでは、本実施の形態には直接的に関係しないので、詳細な説明を省略する。
【００４１】
移動方法判断・指示部３５は、タスク実行指示部３３からタスクを入力すると、そのタスクが固定的な目的地への移動を示すタスクであるか否かを判断するものである。この場合の判断は、例えば、ロボット装置の移動可能な領域内の固定的な目標物を予め登録したリストを備えておき、タスクに含まれる移動先の対象と一致するものがリストにあるか否かによって判断できる。この場合の一例を以下に詳細に説明する。
【００４２】
ロボット装置は、自己位置や移動のために図５に示すような地図情報を予め備えている。この地図情報内には、固定されており位置がはっきりと定まっている物体（以下、固定物とする）を含んでいる。各固定物には、識別するための名称やコードなどの識別情報と、これらの固定物の地図座標系における座標値・物体の大きさの寸法値などの位置情報が付与されている（図示しない）。なお、ここでは画像の形式で示したが、実際にはリストの形式で持っていても良い。
【００４３】
まず、移動方法判断・指示部３５は、（移動の）タスクが入力されると、そのタスクに含まれる目標物が地図情報上の何処にあるのかを検索し、見つかった場合には、その位置情報を得る。例えば、“キッチンへ行く”を示すタスクの場合、目標物が“キッチン”となるため、地図情報から“キッチン”を検索する。図５に示した地図情報内に“キッチン”があるため、移動方法判断・指示部３５は、そのタスクが固定的な目的地への移動を示すタスクであると判断する。また、このとき目標物である“キッチン”の位置情報も得ておく。なお、この位置情報は、キッチンの周辺のうちの一点であればよい。
【００４４】
一方、目標物が地図上のどこにも存在しない場合には、固定物ではないと判断する。例えば、“Ａさんに付いて行く”という意味のタスクであった場合、目標物が“Ａさん”となり、地図情報から“Ａさん”を検索する。しかし、“Ａさん”は位置がはっきりと決まっている対象ではないため、地図情報内には存在しない。そのため、移動方法判断・指示部３５は、そのタスクが固定的な目的地への移動を示すタスクでないと判断する。
【００４５】
なお、以下では、固定的な目的地（物）への移動である場合を位置移動と呼ぶこととして、また、固定的な目的地（物）への移動で無い場合を目標物移動と呼ぶこととする。
【００４６】
図３の説明に戻る。
【００４７】
移動方法判断・指示部３５は、位置移動であると判断した場合には位置移動制御部３６へ、目標物移動であると判断した場合には追跡移動制御部３７へ、タスクを供給する。
【００４８】
位置移動制御部３６は、移動方法判断・指示部３５で得た位置情報を入力し、固定的な目的地の位置を特定し、その位置へ移動するための経由点、順序などを規定した移動経路情報を生成する。この生成された移動経路情報は、一旦生成されると、移動中断など特殊な事情が起きない限り変更されないものである。位置移動制御部３６は、生成された移動経路情報に基づいて、移動部４へ例えばタイヤ８の回転速度などを逐次供給し、目的の位置へロボット装置を導く。この位置移動制御部３６は、まず、予め経路生成を行い、その後、その生成された経路に沿って移動を行うというシーケンス制御を行う。
【００４９】
ここで、位置移動制御部３６にて、定められた初期位置へ戻る移動を例にとって、図６のフローチャートを用いて説明する。
【００５０】
位置移動制御部３６は、移動方法判断・指示部３５で取得された“初期位置”に対応する位置情報を入力する（Ｓ１１）。位置移動制御部３６は、地図情報を利用して、ロボット装置内の内部情報である自己の現在の位置情報を始点とし、入力された“初期位置”の位置情報を終点とする移動経路を生成する（Ｓ１２）。
【００５１】
この移動経路生成にあたっては、まず、地図情報に含まれる固定物の位置情報を参照し、経路の障害となる固定物を避けるように、経路を修正する。この経路が生成された後、線分や円弧などの単純な基本形状に分割し、その分割点を経由点として経路上に追加する。この経由点から次の経由点へ向かう経路を、分割経路とする。このようにして分割経路を組み合わせて移動経路が生成される。なお、ロボット装置の自己の現在の位置情報は、例えば、移動している際に常時デッドレコニングを行うことに取得しても良く、また、よく知られるマーカ利用による自己位置検出機能などで取得しても良い。また、実際の移動中には、自己位置検出機能を用いて自己位置情報を補正し、移動経路を補正することにより、終点への移動に対する信頼性が向上する。
【００５２】
次に、位置移動制御部３６は、生成された移動経路内の各分割経路における、移動時の始点から終点における速度値列または加速度値列を動作計画として作成する（Ｓ１３）。これらの動作計画作成の方針としては、例えば、安全に移動することを優先することや短い時間で到達できることを優先することなどが挙げられ、この方針に基づいて具体的な動作計画作成の手法が決定される。動作計画の作成の例として、分割経路が円弧であった場合には低速で移動し、分割経路が直線であった場合には高速で移動するという動作計画作成手法が設定されていたとした場合、経由点を経過するときに分割経路が円弧から直線に切り替わるときに速度値が変化するが、この速度値を滑らかに変化させるように、速度値を設定するように計画を作成することとなる。
【００５３】
位置移動制御部３６は、分割経路に対応する動作計画を、順次、移動部４へ送る（Ｓ１４）。
【００５４】
このようにして動作計画が順次送られてくると、移動部４では、この順次送られてくる動作計画に基づいてアクチュエータ制御を行う（Ｓ１５）。例えば、移動部４が車輪とこれを動かすよう接続されたステッピングモータ・モータドライバから成り立つとすれば、動作計画から速度値を取得し、これをステッピングモータへの信号値に変換し、モータドライバからステッピングモータへ出力するというループを行う。
【００５５】
図３の説明に戻る。
【００５６】
一方、追跡移動制御部３７は、移動方法判断・指示部３５で位置情報が得られなかったので、目標物が入力され、その目標物を目標物位置取得部３８を用いて特定する。
【００５７】
目標物位置取得部３８は、例えば、カメラなどの画像センサを用いて画像情報を取得し、この画像情報から目標物を検出し、その位置・方向などの情報から目的地点の位置情報を算出する。また、例えば、音を常時発するものであれば、音の方向を常時検出する音源センサを用いて、音源情報を取得し、この音源情報から目標物を検出し、その位置・方向などの情報から目標物の位置情報を算出する。また、例えば、目標物に指向性無線タグを備えていれば、そのタグの方向が取得でき、無線の強度などにより遠近を把握するようにしてもよい。このように、目標物位置取得部３８は正確な位置情報が得られることが望ましいが、必ずしもこの限りではない。
【００５８】
目標物位置取得部３８の一例を図７の機能ブロックで説明する。この例は、カメラ１３により取得した画像情報から目標物を抽出することにより、その目標物の相対距離・角度を算出することにより、目標物の相対的な位置情報を得るものである。
【００５９】
オブジェクト抽出部５１は、カメラから入力された画像情報に含まれるオブジェクトを抽出するものである。
【００６０】
画像情報テンプレート部５２は、目標物となる多数の画像情報を予めテンプレートとして格納するものである。
【００６１】
マッチング処理部５３は、オブジェクト抽出部５１で抽出されたオブジェクトと、画像情報テンプレート部に格納されているテンプレートから目標物のテンプレートを取り出して比較し、最も類似度の高いオブジェクトを定める。
【００６２】
位置算出部５４は、この画像情報内における目標物の位置や目標物の大きさと、予め設定されているカメラの画角・倍率などのカメラパラメータ情報から、目標物の相対距離・方向角度値などの位置情報を算出する。
【００６３】
このような機能ブロックで構成される目標物位置取得部３８は、追跡移動制御部３７で１つの目標物の追跡を行っている間、逐次同じオブジェクトの位置情報を算出し続ける。
【００６４】
図３の説明に戻る。
【００６５】
追跡移動制御部３７は、目標物位置取得部３８から得られた目標物の位置情報を得て、その位置へ移動するための移動経路を常時生成する。この常時生成される移動経路情報に基づいて、移動部４へ例えばタイヤ８の回転速度などを逐次供給し、目標物の位置へロボット装置を導く。この追跡移動制御部３７は、常時、最新の目標物を検知し、常時そこから目標物までの移動経路を生成して常時移動を行うというループ制御を行う。
【００６６】
ここで、追跡移動制御部３７にて、Ａさんに追従する移動を例にとって、図８のフローチャートを用いて説明する。
【００６７】
追跡移動制御部３７は、移動方法判断・指示部３５でタスクに含まれた“Ａさん”を入力する（Ｓ２１）。追跡移動制御部３７は、目標物を識別する“Ａさん”なる情報を目標物位置取得部３８へ供給する（Ｓ２２）。そして、追跡移動制御部３７は、上記で説明したように“Ａさん”の位置情報を算出した目標物位置取得部３８から“Ａさん”の位置情報を取得する（Ｓ２３）。
【００６８】
追跡移動制御部３７は、この位置情報からその近傍の到達点の位置情報を設定する（Ｓ２４）。到達点の設定は、例えば、目標物の位置をそのまま到達点の位置と設定することが挙げられる。また、“追従する”という動作を、“目標物と自分との距離を一定に保つように移動する”ことであると定義した場合には、Ａさんと自分とを結ぶ線分上で、且つ、Ａさんから設定値だけ離れた点を到達点としたり、Ａさんの過去の位置情報から移動方向を求め、その移動方向に沿うような到達点として（つまり、“移動しているAさんの一定距離後ろに常に居る”ように保つような到達点として）設定を行うことなどが挙げられる。
【００６９】
そして、追跡移動制御部３７は、地図情報を利用して、ロボット装置内の内部情報である自己の現在の位置情報を始点とし、設定された到達点の位置情報を終点とする移動経路を生成する（Ｓ２５）。もし、この移動経路が複雑であるようであれば、この後に、上記の位置移動制御部３６で説明したように、分割経路を生成しても良い。
【００７０】
そして、追跡移動制御部３７は、生成した経路または分割経路における速度値列または加速度値列を動作計画として作成する（Ｓ２６）。この動作計画の作成は位置移動制御部３６で説明した方法と同様でよい。
【００７１】
作成された動作計画が移動部４へ送られ、移動部４では、この送られてくる動作計画に基づいて、上記位置移動制御部３６で説明した方法と同様に、アクチュエータ制御を行う（Ｓ２７）。
【００７２】
ところで、追跡移動制御部３７は、以上の一連の処理動作中、例えば所定期間ごとに、“Ａさん”の位置情報を算出した目標物位置取得部３８から“Ａさん”の位置情報を取得する。すると、現在の処理を中止して、“Ａさん”の新たな位置情報、および、その時のロボット装置の位置情報に基づいて、ステップＳ２４以降繰り返され、最新の移動経路によって動作する。
【００７３】
上記で説明した追跡移動制御部３７のフローチャートでは、都度位置情報を算出していたが、これに代え、目標物の方向と相対距離とを用いて制御する方法でもよい。この場合、目標物の方向へ相対距離が予め定めた閾値以下にならないよう、速度制御すれば目標物へ衝突の危険性が避けられる。また、計算負荷も小さくなり、より高速に最新の移動経路を求めることが可能になる。
【００７４】
以上詳細に説明した本実施の形態によれば、ユーザからの指示を判断し適切な移動制御方法を用いて移動することが可能になった。特に、ユーザの指示次第で、位置移動制御も、追跡移動制御も、適切に選択することができるようになった。
【図面の簡単な説明】
【００７５】
【図１】本実施の形態のロボット装置の外観を示す図。
【図２】本実施の形態のロボットシステム１０のシステム構成を示す図。
【図３】本実施の形態の移動制御に係る機能ブロックを示した図。
【図４】本実施の形態のユーザ指示変換部３１の一例。
【図５】地図情報の一例。
【図６】位置移動制御部３６における、定められた初期位置へ戻る移動の一例に沿ったフローチャート。
【図７】目標物位置取得部３８の一例。
【図８】追跡移動制御部３７における、Ａさんに追従する移動の一例に沿ったフローチャート。
【符号の説明】
【００７６】
１・・・顔部、２・・・胴部、３・・・アーム部、４・・・移動部、
５・・・口部、６・・・耳部、７・・・目部、８・・・タイヤ
１０・・・ロボットシステム、１１・・・スピーカ、１２・・・マイク、１３・・・カメラ
２１・・・システム制御部、２２・・・音声処理サブシステム
２３・・・画像処理サブシステム、２４・・・アームサブシステム
２５・・・胴回転サブシステム、２６・・・首回転サブシステム
２７・・・移動サブシステム
３１・・・ユーザ指示変換部、３２・・・タスク生成部、３３・・・タスク実行指示部
３４・・・機能処理部、３５・・・移動方法判断・指示部、
３６・・・位置移動制御部、３７・・・追跡移動制御部、３８・・・目標物位置取得部
４１・・・Ａ／Ｄ変換部、４２・・・音声認識部、４３・・・音声認識用辞書
４４・・・意味解析部、４５・・・意味解析用辞書
５１・・・オブジェクト抽出部５１
５２・・・画像情報テンプレート部
５３・・・マッチング処理部
５４・・・位置算出部
【図１】
2006263844.tif 000003
【図２】
2006263844.tif 000004
【図３】
2006263844.tif 000005
【図４】
2006263844.tif 000006
【図５】
2006263844.tif 000007
【図６】
2006263844.tif 000008
【図７】
2006263844.tif 000009
【図８】
2006263844.tif 000010