(57)【特許請求の範囲】
【請求項１】
ユーザの前方において、ユーザに追従する移動体であって、
当該移動体を移動させる移動手段と、
ユーザの胴体と脚とを区別して検知するユーザ検知手段と、
前記ユーザ検知手段により検知された胴体の情報に基づいて前記ユーザに対する当該移動体の左右方向の目標位置を算出し、前記ユーザ検知手段により検知された胴体または脚のうち当該移動体に近い方の情報に基づいて前記ユーザに対する当該移動体の前後方向の目標位置を算出し、算出された左右方向および前後方向の目標位置に基づいて、前記移動手段を制御して、当該移動体を移動させる移動制御手段とを備えていることを特徴とする移動体。
【請求項２】
ユーザの前方において、ユーザに追従する移動体であって、
当該移動体を移動させる移動手段と、
ユーザの胴体と脚とを区別して検知するユーザ検知手段と、
前記ユーザ検知手段により検知された胴体の情報に基づいて当該移動体の移動方向を算出し、前記ユーザ検知手段により検知された胴体または脚のうち当該移動体に近い方の情報に基づいて当該移動体の移動距離を算出し、算出された移動方向および移動距離に基づいて、前記移動手段を制御して、当該移動体を移動させる移動制御手段とを備えていることを特徴とする移動体。
【請求項３】
前記ユーザ検知手段は、前記ユーザの胴体の向きを検知し、
前記移動制御手段は、前記ユーザ検知手段により検知された胴体の向きの情報に基づいて前記ユーザに対する当該移動体の左右方向の目標位置を制御するものであることを特徴とする請求項１記載の移動体。
【請求項４】
前記ユーザ検知手段は、前記ユーザの胴体の向きを検知し、
前記移動制御手段は、前記ユーザ検知手段により検知された胴体の向きの情報に基づいて前記ユーザに対する当該移動体の移動方向を制御するものであることを特徴とする請求項２記載の移動体。
【請求項５】
前記ユーザ検知手段は、前記ユーザの腕を区別して検知するものであり、
前記移動制御手段は、前記ユーザ検知手段により検知された腕の情報を使わずに、当該移動体の移動制御を行うものであることを特徴とする請求項１から４のいずれかに記載の移動体。
【請求項６】
前記ユーザ検知手段は、前記ユーザの歩き出しを検知するものであり、
前記移動制御手段は、前記ユーザ検知手段により前記ユーザの歩き出しが検知された場合には、当該移動体の移動速度を、当該移動体の位置と前記ユーザ検知手段により検知された胴体および脚の情報とから算出された移動速度より大きく設定することを特徴とする請求項１から５のいずれかに記載の移動体。
【請求項７】
前記ユーザ検知手段は、前記ユーザの胴体と脚との位置偏差の微分値が所定の第１閾値を超えた場合に、前記ユーザの歩き出しを検知するものであることを特徴とする請求項６に記載の移動体。
【請求項８】
前記ユーザ検知手段は、前記ユーザの歩行中を検知するものであり、
前記移動制御手段は、前記ユーザ検知手段により前記ユーザの歩行中が検知された場合であって、当該移動体の位置が、前記ユーザ検知手段により検知された胴体および脚の情報から算出された目標位置を超えた場合には、当該移動体の移動速度を正の範囲で減速させることを特徴とする請求項１から７のいずれかに記載の移動体。
【請求項９】
前記ユーザ検知手段は、前記ユーザの胴体と脚との位置偏差の微分値が所定の第２閾値を所定期間超えている場合に、前記ユーザが歩行中であると検知するものであることを特徴とする請求項８に記載の移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体に関し、特に、ユーザの前方にて、ユーザに対し適切な位置に移動して、ユーザに追従できる移動体に関するものである。
【背景技術】
【０００２】
特許文献１には、周囲環境に基づいて、ユーザとの位置関係を決定し、その決定した位置関係に基づいて、ユーザのそばについて自律的に移動する自律移動装置が開示されている。この自律移動装置によれば、ユーザの追尾に加えて、追尾以外の移動形態をとることが可能となるので、ユーザの前方にて、ユーザに追従しつつ移動することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３１６９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の自律移動装置では、ユーザの検知は行うものの、ユーザのどの部分を検知するのか考慮されていない。一般に人が歩行する場合は、脚が先行して動き、その後に胴体が追いついてくる動きになる。よって、例えば、ユーザの胸位置を基準にユーザ検知を行った場合、当該装置の応答性が悪くなる。即ち、当該装置をユーザの前方にて、ユーザに追従させつつ移動させる場合には、ユーザと当該装置との距離が詰まったり離れたりと不自然な動きになる。一方、人の歩行中においては、胸が脚に先行する場合もあり、かかる場合、脚だけのユーザ検知では、やはり当該装置の応答性は悪いままである。
【０００５】
本発明は、上述した問題点を解決するためになされたものであり、ユーザの前方にて、ユーザに対し適切な位置に移動して、ユーザに追従できる移動体を提供することを目的としている。
【課題を解決するための手段】
【０００６】
この目的を達成するために本発明の移動体は、ユーザの前方において、ユーザに追従するものであり、当該移動体を移動させる移動手段と、ユーザの胴体と脚とを区別して検知するユーザ検知手段と、前記ユーザ検知手段により検知された胴体の情報に基づいて前記ユーザに対する当該移動体の左右方向の目標位置を算出し、前記ユーザ検知手段により検知された胴体または脚のうち当該移動体に近い方の情報に基づいて前記ユーザに対する当該移動体の前後方向の目標位置を算出し、算出された左右方向および前後方向の目標位置に基づいて、前記移動手段を制御して、当該移動体を移動させる移動制御手段とを備えている。
【発明の効果】
【０００７】
請求項１の移動体によれば、ユーザ検知手段により、ユーザの胴体と脚とが区別して検知され、移動制御手段によって、その検知された胴体の情報に基づいてユーザに対する当該移動体の左右方向の目標位置を算出し、検知された胴体または脚のうち当該移動体に近い方の情報に基づいてユーザに対する当該移動体の前後方向の目標位置を算出し、算出された左右方向および前後方向の目標位置に基づいて、移動手段が制御され、当該移動体が移動する。よって、当該移動体は、ユーザの前方にて、ユーザに対し適切な左右方向と前後方向との目標位置に移動して、ユーザに追従できるという効果がある。
請求項２の移動体によれば、ユーザ検知手段により、ユーザの胴体と脚とが区別して検知され、移動制御手段によって、その検知された胴体の情報に基づいて当該移動体の移動方向を算出し、ユーザ検知手段により検知された胴体または脚のうち当該移動体に近い方の情報に基づいて当該移動体の移動距離を算出し、算出された移動方向および移動距離に基づいて、移動手段が制御され、当該移動体が移動する。よって、当該移動体は、ユーザの前方にて、ユーザに対し適切な移動方向かつ適切な移動距離に移動して、ユーザに追従できるという効果がある。
【０００８】
【０００９】
請求項３の移動体によれば、請求項１の奏する効果に加え、次の効果を奏する。移動制御手段は、ユーザ検知手段により検知された胴体の向きの情報に基づいて、ユーザに対する当該移動体の左右方向の目標位置を制御する。よって、当該移動体は、ユーザに対し適切な左右方向の目標位置に移動できるという効果がある。
【００１０】
【００１１】
請求項４の移動体によれば、請求項２の奏する効果に加え、次の効果を奏する。移動制御手段は、ユーザ検知手段により検知された胴体の向きの情報に基づいて、ユーザに対する当該移動体の移動方向を制御する。よって、当該移動体は、ユーザに対し適切な移動方向に移動できるという効果がある。
【００１２】
請求項５の移動体によれば、請求項１から４のいずれかが奏する効果に加え、次の効果を奏する。ユーザ検知手段は、ユーザの腕を区別して検知するものであり、移動制御手段は、ユーザ検知手段により検知された腕の情報を使わずに、当該移動体の移動制御を行う。よって、ユーザが腕を自らの移動とは無関係に動作させた場合にも、その腕の動きに惑わされることなく、当該移動体は、ユーザの前方にて、ユーザに対し適切な位置に移動して、ユーザに追従できるという効果がある。
【００１３】
請求項６の移動体によれば、請求項１から５のいずれかが奏する効果に加え、次の効果を奏する。ユーザの歩き出し時は、歩行中と異なり、ユーザと当該移動体との距離が詰まる傾向にある。よって、歩き出し時には、当該移動体を通常時より素早く移動させることが求められる。請求項６によれば、ユーザ検知手段は、前記ユーザの歩き出しを検知するものであり、移動制御手段は、ユーザ検知手段によりユーザの歩き出しが検知された場合には、当該移動体の移動速度を、当該移動体の位置とユーザ検知手段により検知された胴体および脚の情報とから算出された移動速度より大きく設定する。よって、当該移動体は、ユーザの歩き出し時に通常時より素早く移動するので、ユーザの歩き出し時における移動をスムーズに行うことができるという効果がある。
【００１４】
請求項７の移動体によれば、請求項６が奏する効果に加え、次の効果を奏する。ユーザ検知手段は、ユーザの胴体と脚との位置偏差の微分値が所定の第１閾値を超えた場合に、ユーザの歩き出しを検知する。よって、ユーザの歩き出しを的確に検知して、歩き出し時における当該移動体の移動をスムーズに行わせることができるという効果がある。
【００１５】
請求項８の移動体によれば、請求項１から７のいずれかが奏する効果に加え、次の効果を奏する。ユーザ検知手段は、前記ユーザの歩行中を検知するものであり、移動制御手段は、ユーザ検知手段によりユーザの歩行中が検知された場合であって、当該移動体の位置が、ユーザ検知手段により検知された胴体および脚の情報から算出された目標位置を超えた場合には、当該移動体の移動速度を正の範囲で減速させる。よって、ユーザの歩行中に当該移動体が進み過ぎて目標位置を超えた場合、当該移動体が歩行中のユーザ方向へ逆走することなく、当該移動体の進み過ぎを徐々に解消できる。よって、ユーザの歩行中においても、当該移動体の移動をスムーズに行うことができるという効果がある。
【００１６】
請求項９の移動体によれば、請求項８が奏する効果に加え、次の効果を奏する。ユーザ検知手段は、ユーザの胴体と脚との位置偏差の微分値が所定の第２閾値を所定期間超えている場合に、ユーザが歩行中であると検知する。よって、ユーザの歩行中を的確に検知して、歩行中における当該移動体の移動をスムーズに行わせることができるという効果がある。なお、「所定の第２閾値」は、必ずしも前記した「所定の第１閾値」と同一の値である必要は無く、異なる値であっても良い。
【図面の簡単な説明】
【００１７】
【図１】（ａ）は本発明の一実施形態における移動体およびユーザの外観図であり、（ｂ）は（ａ）の矢印Ｉｂ方向から見たユーザの正面図である。
【図２】第１実施形態における移動体の電気的構成を示すブロック図である。
【図３】第１実施形態におけるメイン処理のフローチャートである。
【図４】Ｓ２，Ｓ３にて決定されるユーザの位置を説明するための図である。
【図５】ユーザの歩行状態におけるユーザの部位（胴体、脚）と移動体との距離の関係を示す図である。
【図６】（ａ）はユーザの歩行中における胴体の位置の移動量と脚の位置の移動量とを示す図であり、（ｂ）はユーザの胴体と脚との位置偏差の微分値の推移と歩行中フラグの状態の推移との関係を示すグラフである。
【図７】ユーザが停止している状態から歩行出し始めるまでの、移動体とユーザとの位置関係と、移動体の移動速度の大きさとを示した図である。
【図８】第２実施形態における移動体の電気的構成を示すブロック図である。
【図９】第２実施形態におけるメイン処理のフローチャートである。
【図１０】Ｓ２０にて決定されるユーザの位置を説明するための図である。
【発明を実施するための形態】
【００１８】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。まず、図１を参照して、本実施形態における移動体についての構成を説明する。図１（ａ）は、移動体１０およびユーザ２０の外観図であり、図１（ｂ）は、矢印Ｉｂ方向から見たユーザ２０の正面図である。移動体１０は、ユーザ２０の前方にて、ユーザに対し適切な位置に移動して、ユーザに追従できる装置として機能する。
【００１９】
なお、移動体１０の移動範囲である「ユーザ２０の前方」とは、例えばユーザ２０の前方であって、ユーザ２０を中心とする１８０度の範囲である。或いは、ユーザ２０の視界の範囲内としてもよい。また、移動体１０とユーザ２０との間の距離は、移動体１０がユーザ２０と共に移動するという点で自然な、確保すべき距離Ｌ（例えば、１２０ｃｍ程度）を超えないように設定された距離以下の範囲内とされる。この確保すべき距離Ｌは、ユーザ２０と移動体１０の移動制御における目標位置との距離と等しい。
【００２０】
図１（ａ）に示すように、移動体１０は、本体部１１と、胴体検知センサ１３と、脚位置検知センサ１４と、周辺認識センサ１５と、車輪１６と、表示部１７と、制御部１２とを有する。本体部１１は、略直方体状に形成され、本体部１１内には制御部１２が格納される。胴体検知センサ１３は、ユーザ２０の胴体の画像を取得するカメラで構成され、本体部１１と表示部１７との間であって、ユーザ２０の胴体の中央部と略同じ高さに設けられる。
【００２１】
胴体検知センサ１３は、ユーザ２０の胴体部分に設けたＡＲマーカ２１を含む画像を制御部１２へ送信する。制御部１２は、胴体検知センサ１３で取得された画像を解析し、画像内のＡＲマーカ２１の大きさ、傾きから、移動体１０の中心Ｃから胴体までの距離ｄｂを算出し、ユーザ２０の胴体の位置を算出する。この胴体の位置は、移動体１０の中心Ｃを原点（０，０）とした座標系で示す値である（以下「移動体座標系」と称す）。図１（ａ）の上側の２点鎖線で描いた三角形のエリアが、胴体検知センサ１３の検出範囲である。
【００２２】
なお、胴体検知センサ１３の水平方向の位置は、移動体１０の中心Ｃから離れているので、制御部１２は、その距離差を補正した上で距離ｄｂおよび胴体の座標を算出する。また、胴体検知センサ１３の上下位置を、表示部１７と本体部１１との間で変更可能に構成して、ユーザ２０の身長によらず、胴体部分が適切に取得できるようにしてもよい。
【００２３】
脚位置検知センサ１４は、ユーザ２０の脚の画像を取得するためのカメラで構成され、胴体検知センサ１３と車輪１６との間であって、ユーザ２０の向こう脛と略同じ高さに設置される。ここで「脚」とは、一般的には「くるぶし」から「腿」（もも）までの部分を指す。本実施形態において脚位置検知センサ１４は、「脚」の検出を、「向こう脛」を検出することによって行っている。しかし、必ずしもこれに限られるものではなく、「向こう脛」に代えて、或いは「向こう脛」と共に、「膝」や「腿」などを検出することにより、「脚」の検出を行うようにしても良い。また、「くるぶし」から先の部分を検出するようにしても良く、「くるぶし」から先の部分も、本願で言う「脚」に含むものとする。
【００２４】
脚位置検知センサ１４は、ユーザ２０の向こう脛を含む脚の画像を制御部１２へ送信する。制御部１２は、脚位置検知センサ１４で取得された画像を解析し、移動体１０の中心Ｃからユーザ２０の右脚、左脚のそれぞれの向こう脛までの距離ｄｆを算出し、右脚および左脚のうち、距離ｄｆが小さい方の脚の位置の座標を算出する。この座標系は、ユーザ２０の胴体の位置と同じく、移動体座標系である。下側の２点鎖線で描いた三角形のエリアが脚位置検知センサ１４の検出範囲を示す。
【００２５】
なお、脚位置検知センサ１４の水平方向の位置は、移動体１０の中心Ｃから離れているので、制御部１２は、その距離差を補正した上で距離ｄｆおよび胴体の座標を算出する。また、脚位置検知センサ１４の上下位置を変更可能に構成して、ユーザ２０の身長によらず、脚部分の画像（特に、向こう脛部分の画像）が適切に取得できるようにしてもよい。
【００２６】
周辺認識センサ１５は、移動体１０およびユーザ２０の周囲状況の画像を取得するカメラで構成され、脚位置検知センサ１４の反対側に設置される。周辺認識センサ１５により、移動体１０の周りの障害物や移動体１０に近づいてくる人間を認識できるので、制御部１２は、それらを回避しつつも、ユーザ２０が移動しやすい方向へ移動体１０を移動させることができる。
【００２７】
車輪１６は、全方位への移動が可能な全方位車輪で構成され、移動体１０の下部に設置される。これにより、移動体１０は、全方位への移動をスムーズに行うことができる。車輪１６は、駆動部３５のモータ（図示せず）によって回転し、移動体１０を移動させる。本実施形態では、３つの車輪１６が設けられるが、車輪１６の数は、必ずしも３つに限られず、適宜の数を採用できる。
【００２８】
表示部１７は、ＬＣＤなどのディスプレイを有し、ディスプレイへの表示によって情報をユーザ２０に伝達する装置であり、移動体１０の上部に設けられる。図１に示す通り、表示部１７のディスプレイは、ユーザ２０に対向する面に設けられる。即ち、表示部１７のディスプレイは、胴体検知センサ１３および脚位置検知センサ１４と同方向に向けて配設される。表示部１７のディスプレイは、タッチパネルとして構成される。表示部１７は、ＨＭＩ部３６を介して、ユーザ２０からの指示を移動体１０に入力し、また移動体１０の状態や移動経路などをディスプレイに表示する。
【００２９】
制御部１２は、移動体１０の各部を制御するための装置であり、胴体検知センサ１３と、脚位置検知センサ１４と、周辺認識センサ１５とから取得した情報をもとに移動体１０の移動速度および移動方向を決定し、それに基づく移動指示を駆動部３５を介して、各車輪１６に対して行う。
【００３０】
ＡＲマーカ２１は、制御部１２が胴体検知センサ１３から取得した画像を画像処理する場合に、ユーザ２０の位置を識別するためのマーカである。本実施形態においては、拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）技術により画像内のＡＲマーカ２１の大きさからそのマーカまでの距離を取得する。
【００３１】
図１（ｂ）に示すように、ＡＲマーカ２１は、ユーザ２０前面の胴体部分に設けられる。胴体検知センサ１３は、ＡＲマーカ２１を含む胴体部分を画像データ化する。制御部１２は、取得した画像データ内のＡＲマーカ２１の大きさから移動体１０とユーザ２０との距離を算出し、前述した移動体座標系におけるユーザ２０の座標を算出する。これにより、ユーザ２０に距離計などを持たせることなく、ユーザ２０の胴体の位置を取得することができる。
【００３２】
図２を参照して、移動体１０の電気的構成について説明する。図２は、第１実施形態における移動体１０の電気的構成を示すブロック図である。制御部１２は、移動体１０の各部を制御するための装置であり、図２に示す通り、ＣＰＵ３０、ＲＯＭ３１及びＲＡＭ３２を備え、これらがバスライン３３を介して入出力ポート３４にそれぞれ接続されている。また、入出力ポート３４には、胴体検知センサ１３、脚位置検知センサ１４、周辺認識センサ１５、駆動部３５、ＨＭＩ部３６がそれぞれ接続されている。
【００３３】
ＣＰＵ３０は、バスライン３３により接続された各部を制御する演算装置である。ＲＯＭ３１は、ＣＰＵ３０により実行される制御プログラム（例えば、図３のメイン処理）や固定値データ等を格納した書き換え不能な不揮発性メモリである。
【００３４】
ＲＡＭ３２は、ＣＰＵ３０が制御プログラム実行時に各種のワークデータやフラグ等を書き換え可能に記憶するためのメモリであり、ユーザ位置情報メモリ３２ａと、ユーザ胴体位置メモリ３２ｂと、ユーザ脚位置メモリ３２ｃと、目標位置メモリ３２ｄと、移動速度メモリ３２ｅと、移動方向メモリ３２ｆと、歩行中フラグ３２ｇと、歩き出しフラグ３２ｈとがそれぞれ設けられる。
【００３５】
ユーザ位置情報メモリ３２ａは、移動体１０の移動制御で用いられるユーザ２０の位置を記憶するメモリであり、Ｘ座標メモリ３２ａ１とＹ座標メモリ３２ａ２とを有する。Ｘ座標メモリ３２ａ１、Ｙ座標メモリ３２ａ２の座標系は、いずれも前述した移動体座標系である。制御部１２の電源投入時には、Ｘ座標メモリ３２ａ１、Ｙ座標メモリ３２ａ２の値は、それぞれ「０」クリアされる。胴体検知センサ１３による胴体の位置の取得と、脚位置検知センサ１４による脚の位置の取得とが行われた後、Ｘ座標メモリ３２ａ１にはユーザ２０の胴体の位置のＸ座標が格納され、Ｙ座標メモリ３２ａ２には、ユーザ２０の胴体の位置と脚の位置とのうち、移動体１０との距離が小さい方（即ち、距離ｄｂと距離ｄｆとを比較して小さい方）のＹ座標が格納される。
【００３６】
ユーザ胴体位置メモリ３２ｂは、ユーザ２０の胴体の位置を記憶するメモリであり、Ｘ座標メモリ３２ｂ１と、Ｙ座標メモリ３２ｂ２とを有する。Ｘ座標メモリ３２ｂ１、Ｙ座標メモリ３２ｂ２の座標系は、いずれも前述した移動体座標系である。制御部１２の電源投入時には、Ｘ座標メモリ３２ｂ１、Ｙ座標メモリ３２ｂ２の値は、それぞれ「０」クリアされる。胴体検知センサ１３から取得した画像を、制御部１２で解析し算出された、ユーザ２０の胴体の位置の、Ｘ座標がＸ座標メモリ３２ｂ１に格納され、Ｙ座標がＹ座標メモリ３２ｂ１に格納される。
【００３７】
ユーザ脚位置メモリ３２ｃは、ユーザ２０の脚の位置を記憶するメモリであり、Ｘ座標メモリ３２ｃ１と、Ｙ座標メモリ３２ｃ２とを有する。Ｘ座標メモリ３２ｃ１、Ｙ座標メモリ３２ｃ２の座標系は、いずれも前述した移動体座標系である。制御部１２の電源投入時には、Ｘ座標メモリ３２ｃ１、Ｙ座標メモリ３２ｃ２の値は、それぞれ「０」クリアされる。ユーザ脚位置メモリ３２ｃには、脚位置検知センサ１４から取得した画像を、制御部１２で解析し算出された、ユーザ２０の脚の位置の、Ｘ座標がＸ座標メモリ３２ｃ１に格納され、Ｙ座標がＹ座標メモリ３２ｃ１に格納される。
【００３８】
目標位置メモリ３２ｄは、移動体１０の移動制御における目標位置を記憶するメモリであり、Ｘ座標メモリ３２ｄ１と、Ｙ座標メモリ３２ｄ２とを有する。Ｘ座標メモリ３２ｄ１、Ｙ座標メモリ３２ｄ２の座標系は、いずれも前述した移動体座標系である。制御部１２の電源投入時には、Ｘ座標メモリ３２ｄ１、Ｙ座標メモリ３２ｄ２の値は、それぞれ「０」クリアされる。ユーザ２０の位置の取得が行われた後、制御部１２によってユーザ位置情報メモリ３２ａの値から算出された、移動体１０の移動制御における目標位置の、Ｘ座標がＸ座標メモリ３２ｄ１に格納され、Ｙ座標がＹ座標メモリ３２ｄ１に格納される。
【００３９】
移動速度メモリ３２ｅは、移動体１０を目標位置へ移動させるための移動速度を記憶するメモリである。制御部１２の電源投入時には、移動速度メモリ３２ｅの値は「０」クリアされる。詳しくは後述するが、移動速度メモリ３２ｅには、制御部１２によって目標位置メモリ３２ｄから算出された移動速度が格納される。
【００４０】
移動方向メモリ３２ｆは、移動体１０を目標位置へ移動させるための移動方向を記憶するメモリである。移動方向メモリ３２ｆの座標系は前述した移動体座標系であり、単位はラジアンである。制御部１２の電源投入時には、移動方向メモリ３２ｆの値は「０」クリアされる。詳しくは後述するが、移動方向メモリ３２ｆには、制御部１２によって目標位置メモリ３２ｄから算出された移動方向が格納される。
【００４１】
歩行中フラグ３２ｇは、ユーザ２０が歩行中であることを示すフラグである。制御部１２の電源投入時にＯＦＦに設定される。ユーザ２０の胴体の位置と脚の位置との微分値が、閾値Ａを超えている又は閾値Ｂを下回っている状態が時間Δｔ継続している場合に、ユーザ２０は歩行中と判断され、歩行中フラグ３２ｇはＯＮに設定される（図６（ｂ）参照）。
【００４２】
歩き出しフラグ３２ｈは、ユーザ２０が停止状態から歩行中になったことを示すフラグであり、制御部１２の電源投入時にＯＦＦに設定される。ユーザ２０が停止中から歩行状態になったタイミング、即ち、歩行中フラグ３２ｇの値がＯＦＦからＯＮになったときに歩き出しフラグ３２ｈはＯＮに設定され、移動体１０とユーザ２０との距離が確保すべき所定の距離Ｌを超えた場合に歩き出しフラグ３２ｈはＯＦＦされる。
【００４３】
駆動部３５は、移動体１０を移動動作させるための装置であり、車輪１６および車輪１６の駆動源となるモータ（図示せず）などから構成される。制御部１２から移動信号が駆動部３５に入力されると、入力された信号に基づいてモータが回転し、当該モータの回転が動力となって車輪１６が駆動し、移動体１０を動作させる。
【００４４】
ＨＭＩ部３６は、ユーザ２０へ情報を出力し、ユーザ２０が指示を入力するためのインタフェイスであり、前述した表示部１７のディスプレイとタッチパネルとから構成される。ＨＭＩ部３６は、制御部１２から入力された制御信号に応じて表示部１７のディスプレイに情報を出力する。一方、ユーザ２０から表示部１７のタッチパネルを経由してＨＭＩ部３６に指示が入力された場合、ＨＭＩ部３６は、当該入力に応じた制御信号を制御部１２に出力する。なお、音声を出力するスピーカや、音声を入力するマイクを、ＨＭＩ部３６に設けるようにしてもよい。
【００４５】
次に、図３から図７を参照して、制御部１２のＣＰＵ３０で実行される処理について説明する。図３は、第１実施形態におけるメイン処理のフローチャートである。メイン処理により、移動体１０の移動方向、移動速度が決定され、それ等に基づいて駆動部３５へ移動指示が与えられる。メイン処理は１００ｍｓ毎のインターバル割り込み処理により繰り返し実行される。
【００４６】
メイン処理では、まず胴体検知センサ１３、脚位置検知センサ１４から、それぞれユーザ２０の胴体の位置および脚の位置を取得する（Ｓ１）。
【００４７】
ユーザ２０の胴体の位置の取得方法を具体的に説明する。胴体検知センサ１３からユーザ２０の胴体部分の画像を取得し、制御部１２へ送信する。制御部１２は、取得した画像を解析し、ユーザ２０の胴体に設けられたＡＲマーカ２１を検出する。検出されたＡＲマーカ２１の画像内でのサイズから、ＡＲマーカ２１のＸ，Ｙ軸方向の座標を算出する。算出されたＸ軸方向の座標をユーザ胴体位置メモリ３２ｂのＸ座標メモリ３２ｂ１に、Ｙ軸方向の座標をＹ座標メモリ３２ｂ２にそれぞれ記憶する。
【００４８】
ユーザ２０の脚の位置の取得方法を具体的に説明する。脚位置検知センサ１４からユーザ２０の脚の部分の画像を取得し、制御部１２へ送信する。制御部１２は、取得した画像を解析し、移動体１０の中心Ｃからユーザ２０の右脚、左脚のそれぞれの向こう脛までの距離ｄｆを算出し、右脚および左脚のうち距離ｄｆが小さい方の脚の位置の座標を、脚の位置の座標とする。その脚の位置のＸ軸方向の座標をユーザ脚位置メモリ３２ｃのＸ座標メモリ３２ｃ１に、Ｙ軸方向の座標をＹ座標メモリ３２ｃ２に、それぞれ記憶する。なお、向こう脛を検出する画像解析の方法は、エッジ検出であってもよいし、パターン・マッチングを用いたものであってもよい。
【００４９】
次に、ユーザ位置情報メモリ３２ａのＸ座標メモリ３２ａ１にユーザ胴体位置メモリ３２ｂのＸ座標メモリ３２ｂ１の値を設定する（Ｓ２）。ユーザ胴体位置メモリ３２ｂとユーザ脚位置メモリ３２ｃとのうち、移動体１０との距離が小さい方のＹ座標メモリ（即ちＹ座標メモリ３２ｂ２またはＹ座標メモリ３２ｃ２）の値をユーザ位置情報メモリ３２ａのＹ座標３２ａ２に設定する（Ｓ３）。
【００５０】
ここで、図４を参照して、このユーザ２０の位置の設定処理（Ｓ２，Ｓ３）について説明する。図４は、Ｓ２，Ｓ３にて決定されるユーザ２０の位置を説明するための図である。ある時点での移動体１０とユーザ２０とを移動体座標系上に示す。移動体１０の位置の中心点をＰｍ（０，０）、ユーザ２０の胴体の位置をＰｂ（Ｘｂｏｄｙ，Ｙｂｏｄｙ）と表す。一方、ユーザ２０の脚の位置のうち、右脚の位置をＰｆＲ（ＸｆｏｏｔＲ，ＹｆｏｏｔＲ）と表し、左脚の位置をＰｆＬ（ＸｆｏｏｔＬ，ＹｆｏｏｔＬ）と表す。ユーザ２０の位置をＰｕ（Ｘｕｓｅｒ，Ｙｕｓｅｒ）と表し、目標位置をＰｄ（Ｘｄｅｓ，Ｙｄｅｓ）と表す。
【００５１】
まず、Ｓ２の処理によって、ユーザ位置情報メモリ３２ａのＸ座標メモリ３２ａ１にユーザ胴体位置メモリ３２ｂのＸ座標メモリ３２ｂ１の値が設定される。本実施形態において、ユーザ位置情報メモリ３２ａのＸ座標メモリ３２ａ１にユーザ胴体位置メモリ３２ｂのＸ座標メモリ３２ｂ１の値を常に設定する理由は、移動体１０のＸ軸方向のブレを抑えるためである。仮に、ユーザ２０の胴体の位置、右脚、左脚の３つの座標と移動体１０との距離が最も小さい座標のＸ座標をＸｕｓｅｒとすると、ユーザ２０のＸ座標は、ユーザ２０の歩行状態によって、ＸｆｏｏｔＲ→Ｘｂｏｄｙ→ＸｆｏｏｔＬ→Ｘｂｏｄｙ→ＸｆｏｏｔＲ・・・と変化していくことになる。移動体１０の移動方向はユーザ２０の位置から算出されるため、Ｘｕｓｅｒの値が右から左、左から右へと変化すると、移動体１０の移動方向も右から左、左から右へと変化し、いわば「蛇行運転」のようになってしまう。このため、左右交互に入れ替わる脚の位置よりも、Ｘ軸方向の移動量が安定している胴体の位置をユーザ２０の位置のＸ座標に用いることで、移動体１０の移動制御をより安定させることができる。
【００５２】
次に、図４の時点では、このユーザ２０の胴体の位置、右脚、左脚の３つの座標のうち、移動体１０との距離が最も小さい座標は、右脚の座標（ＸｆｏｏｔＲ，ＹｆｏｏｔＲ）である。よって、Ｓ３の処理にて、ユーザ位置情報メモリ３２ａのＹ座標メモリ３２ａ２に右脚のＹ座標、即ち、ユーザ脚位置メモリ３２ｃのＹ座標メモリ３２ｃ２の値が設定される。ユーザ２０の歩行状態によって移動体１０との距離が最も小さくなるユーザ２０の部位（胴体、右脚、左脚）は異なるため、Ｙｕｓｅｒは歩行状態に従って変化する。これについて図５で説明する。
【００５３】
図５は、ユーザ２０の歩行状態におけるユーザ２０の胴体の位置および脚の位置と移動体１０との距離の関係を示す図である。図５（ａ）〜（ｈ）のユーザ２０の各歩行状態における、ユーザ２０の胴体の位置と移動体１０との距離ｄｂと、ユーザ２０の脚の位置と移動体１０との距離ｄｆとの関係を図示している。ユーザ２０の脚付近の実線Ｈｆは、脚位置検知センサ１４で取得した脚の位置（向こう脛の略高さ位置）を示す。ユーザの胴体の位置はＰｂで、脚の位置はＰｆでそれぞれ示す。なお、Ｐｆは、図４におけるＰｆＲとＰｆＬとのうち、移動体１０との距離が小さい方である。距離ｄｂは移動体２０の中心ＣとＰｂとの距離であり、距離ｄｆは移動体１０の中心ＣとＰｆとの距離である。距離ｄｂと距離ｄｆとの大小関係を図の下部に示す。ユーザ２０が脚を上げ、踏み切り、踏み切り終わるまで（図５（ｂ）〜（ｄ）、（ｇ）、（ｈ））は、距離ｄｆのほうが距離ｄｂより小さい（距離ｄｂ＞距離ｄｆ）。一方、ユーザ２０が停止している場合や（図５（ａ））、右脚と左脚とが入れ替わる場合は（図５（ｆ））、距離ｄｂのほうが距離ｄｆより小さい（距離ｄｂ＜距離ｄｆ）。
【００５４】
このように、歩行状態によって移動体１０との距離が最も小さくなるユーザ２０の部位（胴体、脚）は時々刻々と変化する。そのため本実施形態ではユーザ２０の胴体の位置と脚の位置とのうち、移動体１０との距離が最も小さくなる方をユーザ位置情報メモリ３２ａのＹ座標メモリ３２ａ２に設定している。これにより、ユーザ２０と移動体１０とのＹ軸方向の距離が適切に確保できるため、ユーザ２０の前方において、ユーザ２０にとって邪魔にならない適切な位置に、移動体１０を移動制御することができる。
【００５５】
図３に戻る。Ｓ３の処理の後、ユーザ位置情報メモリ３２ａの値から目標位置を算出し、目標位置メモリ３２ｄに記憶する（Ｓ４）。目標位置は、ユーザ位置から所定の距離Ｌだけ離れた地点とする。図４の２点鎖線で形成された矩形における、ユーザ２０の位置Ｐｕの対角に当たる座標（Ｘｄｅｓ，Ｙｄｅｓ）が目標位置Ｐｄとなる。この位置をユーザ位置情報メモリ３２ａの値から算出し、目標位置メモリ３２ｄに格納する。図４では、ユーザ２０の右前方に目標位置を設けたが、必ずしもこれに限られるものではなく、目標位置をユーザ２０の左前方など他の場所に設けるようにしてもよい。
【００５６】
図３のＳ４の処理の後、ユーザ胴体位置メモリ３２ｂの値とユーザ脚位置メモリ３２ｃの値との偏差の微分値が、閾値Ａを超えている又は閾値Ｂを下回っている状態が時間Δｔ継続しているかを確認する（Ｓ５）。この判断処理について、図６を用いて説明する。
【００５７】
図６（ａ）はユーザ２０の歩行中における胴体の位置の移動量と脚の位置の移動量とを示す図であり、図６（ｂ）はユーザ２０の胴体と脚との位置偏差の微分値の推移と歩行中フラグ３２ｇの状態の推移との関係を示すグラフである。図６（ａ）において、Ｖｂはユーザ２０の胴体の位置における移動量を示し、Ｖｆは脚の位置における移動量を示す。ユーザ２０が停止中である図６（ａ１）では、ユーザ２０の胴体の位置、脚の位置ともに移動していない。これに対して、歩行状態を示す図６（ａ２）以降においては、ユーザ２０の胴体の位置、脚の位置の少なくともいずれか一方が移動している。
【００５８】
ユーザ２０が歩行中に胴体の位置と脚の位置とが同じ量移動することはないため、胴体の位置と脚の位置との位置偏差の微分値（前回値との差分）を求め、その微分値が閾値Ａを超えている又は、閾値Ｂを下回っている状態が、時間Δｔ継続した場合に、ユーザ２０が歩行状態であると判断する。位置偏差の微分値を用いる理由は、位置偏差を用いると停止中に胴体を傾ける或いは脚を上げたままでも位置偏差は増加するため、歩行状態を判断するには適さないからである。位置偏差の微分値を用いることで、前回値からの偏差の差、即ち前回値からの移動量を求めることができる。
【００５９】
図６（ｂ）は、ユーザ２０の胴体の位置と脚の位置との位置偏差の微分値の推移（上段のグラフ）と、歩行中フラグ３２ｇの状態の推移（下段のグラフ）との関係を示す。上段のグラフにおける２本の２点鎖線は、閾値Ａと閾値Ｂとを示す。時刻ｔａでユーザ２０の胴体の位置と脚の位置との位置偏差の微分値が閾値Ａを超えている。そしてこの微分値が閾値Ａを超えている状態が時刻ｔｂ以降も継続している。この時刻ｔｂとｔａとの差が、時間Δｔである。これにより制御部１２は、ユーザ２０が歩行状態であると判断し、図６（ｂ）の下段グラフに示すように、歩行中フラグ３２ｇがＯＦＦからＯＮに変更される。
【００６０】
以上より、ユーザ２０の胴体の位置と脚の位置との位置偏差の微分値が閾値Ａを超えている又は、閾値Ｂを下回っている状態が時間Δｔ継続した場合に、制御部１２はユーザ２０が歩行状態であると判断する。これにより、ユーザ２０の歩行状態を的確に検知して、歩行状態における移動体１０の移動をスムーズに行わせることができる。また、移動体１０にモーション・センサを追加したり、ユーザ２０に加速度計など動きを検出する機器を持たせることなく、歩行状態を検出することができる。
【００６１】
図３に戻る。Ｓ５の結果、歩行状態と判断された場合は（Ｓ５：Ｙｅｓ）、歩行中フラグ３２ｇがＯＦＦかどうかを確認する（Ｓ６）。歩行中フラグ３２ｇがＯＦＦの場合は（Ｓ６：Ｙｅｓ）、歩き出しフラグ３２ｈをＯＮにする（Ｓ７）。これにより、ユーザ２０の歩き出しを的確に検知して、歩き出し時における移動体１０の移動をスムーズに行わせることができる。一方、歩行中フラグ３２ｇがＯＮの場合は（Ｓ６：Ｎｏ）、Ｓ７の処理をスキップする。Ｓ６およびＳ７の処理後、歩行中フラグ３２ｇをＯＮする（Ｓ８）。
【００６２】
Ｓ５の結果、歩行状態でないと判断された場合は（Ｓ５：Ｎｏ）、歩き出しフラグ３２ｈをＯＦＦにし（Ｓ９）、その後、歩行中フラグ３２ｇをＯＦＦする（Ｓ１０）。
【００６３】
Ｓ８およびＳ１０の処理の後、歩行中フラグ３２ｇがＯＮかつ、移動体１０とユーザ２０の位置（即ちユーザ位置情報メモリ３２ａの値）との距離が「確保すべき距離Ｌ」を超えているかを確認する（Ｓ１１）。即ち、移動体１０の中心Ｃ（０，０）と、ユーザ位置情報メモリ３２ａの値とから、移動体１０とユーザ２０との距離を算出し、その距離と確保すべき距離Ｌとを比較する。「確保すべき距離Ｌ」とは、移動体１０がユーザ２０と共に移動するという点で自然な、ユーザ２０と移動体１０との距離であり、ユーザ２０と目標位置との距離である。
【００６４】
歩行中フラグ３２ｇがＯＮかつ、移動体１０とユーザ２０の位置との距離が「確保すべき距離Ｌ」を超えている場合（Ｓ１１：Ｙｅｓ）、移動速度メモリ３２ｅの値から第１所定値を減算する（Ｓ１２）。減算した結果、移動速度メモリ３２ｅの値が０以下ならば（Ｓ１３：Ｙｅｓ）、移動速度メモリ３２ｅの値に第２所定値を設定する（Ｓ１４）。一方、移動速度メモリ３２ｅの値が０より大きければ（Ｓ１３：Ｎｏ）、Ｓ１４の処理はスキップする。Ｓ１３およびＳ１４の処理の後、歩き出しフラグ３２ｈをＯＦＦする（Ｓ１５）。移動速度メモリ３２ｅの値から第１所定値を減算する理由、および歩き出しフラグ３２ｈをＯＦＦする理由については後述する。
【００６５】
一方、移動体１０とユーザ２０の位置との距離が「確保すべき距離Ｌ」を超えていない場合（Ｓ１１：Ｎｏ）、移動体１０の現在位置と目標位置メモリ３２ｄの値とから、移動体１０の移動速度、移動方向を算出し、それぞれ移動速度メモリ３２ｅ、移動方向メモリ３２ｆに記憶する（Ｓ１６）。具体的には、移動体１０の現在位置と目標位置（Ｘｄｅｓ，Ｙｄｅｓ）との距離および角度の偏差をそれぞれ算出し、その距離および角度の偏差をなくすために必要な移動速度および移動方向を演算する。演算方法の一例としては、距離および角度の偏差をパラメータとし、その比例要素（Ｐ）と、微分要素（Ｉ）と、積分要素（Ｄ）との組み合わせであるＰＩＤ制御によって移動速度、移動方向を求めることが挙げられる。
【００６６】
Ｓ１６の処理の後、歩き出しフラグ３２ｈがＯＮの場合は（Ｓ１７：Ｙｅｓ）、移動速度メモリ３２ｅの値に第３所定値を加算する（Ｓ１８）。この移動速度メモリ３２ｅの値に第３所定値を加算する理由については後述する。
【００６７】
Ｓ１５またはＳ１８の処理の後、Ｓ１２，Ｓ１４，Ｓ１６，Ｓ１８で算出した移動速度メモリ３２ｅの値と、移動方向メモリ３２ｆの値とに応じて、駆動部３５に移動指示を出力する（Ｓ１９）。これによって、移動体１０が目標位置に向かって移動を行う。
【００６８】
ここで、図７を参照して、Ｓ１２、Ｓ１８での移動速度メモリ３２ｅに対する第１所定値の減算および第２所定値の加算について説明する。図７はユーザ２０が停止している状態から歩き出し始めるまでの、移動体１０とユーザ２０との推移を示した図である。Ｐｄは移動体１０の目標位置を示し、Ｐｕはユーザ２０の位置を示す。また、Ｖｍは移動体１０の移動速度を示す。図７（ａ）はユーザ２０が停止している状態を示し、図７（ａ）から図７（ｇ）に向かうにつれ、ユーザ２０は歩行動作を始める様子を示す。移動体１０とユーザ２０とが停止している場合（図７（ａ））、移動体１０とユーザ２０とは距離Ｌ内に存在する。
【００６９】
図７（ｂ）〜（ｄ）における、ユーザ２０の歩き出し期間では、移動体１０のＶｍはユーザ２０の速度よりも小さい。これはユーザ２０の歩行状態を検出し、移動速度を演算し、駆動部３５を動作させるまで、若干の時間を要し、また、駆動部３５を駆動させてからユーザ２０の歩行速度に達するまで、時間を要するからである。そこで本実施形態においては、ユーザ２０の歩き出し期間である場合は、Ｓ１６により算出された移動速度に第３所定値を加算し（Ｓ１８）、移動体１０の移動速度を通常時より増加させる。これにより、移動体１０は、ユーザ２０の歩き出し時に、通常時より素早く移動できるので、ユーザ２０の歩き出し時における移動をスムーズに行うことができる。ここで、第３所定値としては、例えば、移動体１０の移動速度の１／２の値を例示できる。
【００７０】
一方、歩き出し期間において、移動速度に第３所定値が加算される状態が継続すると、移動体１０とユーザ２０との距離が確保すべき距離Ｌを超えてしまう（図７（ｆ））。即ち、移動体１０がユーザ２０から離れ過ぎてしまう。そこで、ユーザ２０が歩行状態かつ、ユーザ２０と移動体１０との距離が確保すべき距離Ｌを超えている場合は（Ｓ１１：Ｙｅｓ）、移動体１０の移動速度を第１所定値だけ減算する（Ｓ１２）。ユーザ２０の歩行速度は変わらないため、これにより、移動体１０とユーザ２０との距離が少しずつ小さくなる。よって、移動体１０をユーザ２０に対し確保すべき距離Ｌの位置に近づけていくことができ、その確保すべき距離Ｌを略保った状態で、移動体１０をユーザ２０の前方にてスムーズに追従させることができる。ここで、第１所定値としては、例えば、移動体１０が０．５秒後に停止する減速度から逆算した値を例示できる。
【００７１】
なお、移動体１０の移動速度を第１所定値だけ減算した結果（Ｓ１２）、移動速度が０以下となった場合は、移動体１０の移動速度を第２所定値（正の値）に設定する。これにより、移動体１０がユーザ２０に向かって逆走することを防ぎつつ、移動体１０の進み過ぎを徐々に解消できる。ここで、第２所定値としては、例えば、０．５秒後に確保すべき距離Ｌになるような値を例示できる。
【００７２】
また、ユーザ２０が歩行状態であって、ユーザ２０と移動体１０との距離が確保すべき距離Ｌを超えた場合は（Ｓ１１：Ｙｅｓ）、既に歩き出し期間（即ち第３所定値の加算期間）は終了したということなので、かかる場合には、Ｓ１５の処理によって、歩き出しフラグ３２ｈをＯＦＦしている。
【００７３】
以上説明した通り、移動体１０によれば、ユーザ２０の前方にてユーザ２０に追従する移動制御において、ユーザ２０の位置のＸ座標はユーザ２０の胴体から取得した座標を、Ｙ座標はユーザ２０の胴体の位置と脚の位置とのうち、いずれか移動体１０に近い方を用いる。これにより移動体１０は、ユーザ２０に対し適切な左右方向（Ｘ座標）と前後方向（Ｙ座標）との目標位置に移動できる。よって、移動体１０とユーザ２０との距離を適切に保つことができ、ユーザ２０の前方にて、ユーザ２０の邪魔にならない移動制御をすることができる。
【００７４】
次に、図８から図１０を参照して、第２実施形態の移動体１０の移動制御を説明する。前記した第１実施形態では、ユーザ位置情報メモリ３２ａのＸ座標メモリ３２ａ１の値はユーザ２０の胴体の位置から、Ｙ座標メモリ３２ａ２の値はユーザ２０の胴体の位置と脚の位置とのうちいずれか移動体１０に近い方を用いた。これに対し、第２実施形態では、ユーザ位置情報メモリ３２ａのＸ座標メモリ３２ａ１、Ｙ座標メモリ３２ａ２の値は、ともにユーザ２０の胴体の位置と脚の位置とのうちいずれか移動体１０に近い座標を、ユーザ２０が向いている方向まで回転移動させた座標を用いる。なお、前記した第１実施形態と同一の部分には同一の符号を付してその説明は省略し、異なる部分についてのみ説明する。
【００７５】
図８は、第２実施形態における移動体１０の電気的構成を示すブロック図である。前記した第１実施形態に対し、制御部１２のＲＡＭ３２の構成が異なっている。
【００７６】
第２実施形態の制御部１２は、ユーザ胴体位置メモリ３２ｂに、方向メモリ３２ｂ３が追加されている。方向メモリ３２ｂ３には胴体検知センサ１３から取得したユーザ２０の胴体の位置における方向（単位：ラジアン）が格納される。座標系は、前述した移動体座標系（移動体１０の中心Ｃを原点（０，０）とした座標系）である。制御部１２の電源投入時に、方向メモリ３２ｂ３の値は「０」クリアされる。方向メモリ３２ｂ３には、胴体検知センサ１３から取得したＡＲマーカ２１を含む画像について、制御部１２でＡＲマーカ２１の傾きから算出した移動体１０とユーザ２０の胴体の位置との相対角度が格納される。
【００７７】
次に、図９のおよび図１０を参照して、制御部１２のＣＰＵ３０で実行される処理について説明する。Ｓ４からＳ１９の処理は、前記した第１実施形態の図３の処理と同一であるので、その説明は省略する。
【００７８】
図９は、第２実施形態におけるメイン処理のフローチャートである。Ｓ１の処理において、ユーザ２０の胴体の位置および脚の位置を取得し、それぞれユーザ胴体位置メモリ３２ｂ、ユーザ脚位置メモリ３２ｃに記憶する。ユーザ胴体位置メモリ３２ｂには、Ｘ，Ｙ座標に加え、更に移動体１０とユーザ２０の胴体の位置との相対角度を取得し、これを方向メモリ３２ｂ３へ記憶する。ユーザ胴体位置メモリ３２ｂとユーザ脚位置メモリ３２ｃとのうち移動体１０に近い方の座標と、方向メモリ３２ｂ３の値とからユーザ２０の位置を算出し、ユーザ位置情報メモリ３２ａに格納する。
【００７９】
ここで、図１０を用いてユーザ２０の位置の算出方法を説明する。第１実施形態の図４と同一の部分はその説明は省略する。
【００８０】
図１０は、Ｓ２０にて決定されるユーザ２０の位置を説明するための図である。θｂｏｄｙは、移動体１０とユーザ２０の胴体の位置との相対角度であり、この値は方向メモリ３２ｂ３に記憶されている。図１０の時点では、ユーザ２０の胴体の位置、右脚の座標、左脚の座標のうち、最も移動体１０に近い座標は右脚の座標（ＸｆｏｏｔＲ，ＹｆｏｏｔＲ）である。まず、ＰｆＲとＰｂとを結ぶ線分を求める。この線分の長さをｄとする。この線分ｄと移動体１０との相対角度が、θｂｏｄｙとなる位置まで、即ちＰｂを中心にこの線分ｄを角度αだけ回転移動させる。この回転移動させた位置Ｐｆをユーザ２０の位置Ｐｕとし、その座標（Ｘｆｏｏｔ，Ｙｆｏｏｔ）をユーザ位置情報メモリ３２ａのＸ座標メモリ３２ａ１、Ｙ座標メモリ３２ａ２にそれぞれ記憶する（Ｓ２０）。
【００８１】
このように、胴体検知センサ１３によってユーザ２０の胴体の向きを検出し、ユーザ２０の向きを考慮し、移動体１０の左右方向の目標位置や、移動体１０の移動方向を決定して移動制御を行うので、ユーザ２０から見て移動体１０は常に一定方向に位置する。これにより、ユーザ２０が方向転換した場合でも、移動体１０はユーザ２０の向いている方向かつ、邪魔にならない位置へ移動することできる。
【００８２】
以上説明した通り、第２実施形態の移動体１０によれば、移動体１０の移動制御に用いるユーザ２０の位置の座標を、ユーザ２０の胴体の位置と脚の位置とのうち、いずれか移動体１０に近い方を用い、その座標をユーザ２０の胴体の位置が向いている方向まで回転移動させる。これにより、移動体１０とユーザ２０との距離を適切に保ちつつ、移動体１０をユーザ２０の前方において、ユーザ２０に追従して移動させることができる。
【００８３】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【００８４】
本実施形態において、ユーザ２０が歩行中であって移動体１０とユーザ２０との距離が確保すべき距離Ｌを超えていた場合は（Ｓ１１：Ｙｅｓ）、移動体１０の移動速度から第１所定値を減算して（Ｓ１２）、移動体１０の移動速度を減速させた。しかし、これに代えて、移動体１０の移動速度を１／２や２／３にして減速させても良い。また、減算する第１所定値は、必ずしも固定値である必要は無く、移動体１０の移動速度に対する所定の相対速度として構成しても良い。更に、ユーザ２０が歩行中であって移動体１０とユーザ２０との距離が確保すべき距離Ｌを超えていた場合は（Ｓ１１：Ｙｅｓ）、移動体１０の目標位置を、本来の目標位置より近い位置に設定し、それによって移動体１０の移動速度を通常時より遅い速度に設定するようにしても良い。
【００８５】
同様に、Ｓ１４の処理で用いられる第２所定値は、必ずしも固定値である必要は無く、移動体１０の移動速度に対する所定の相対速度として構成しても良い。
【００８６】
また、ユーザ２０が歩き出しの場合は（Ｓ１７：Ｙｅｓ）、移動体１０の移動速度に第３所定値を加算して（Ｓ１８）、移動体１０の移動速度を加速させた。しかし、これに代えて、移動体１０の移動速度を１．５倍や２倍、３倍に加速させても良い。また、加算する第３所定値は、必ずしも固定値である必要は無く、移動体１０の移動速度に対する所定の相対速度として構成しても良い。更に、ユーザ２０が歩き出しの場合は（Ｓ１７：Ｙｅｓ）、移動体１０の目標位置を、本来の目標位置より遠い位置に設定し、それによって移動体１０の移動速度を通常時より速い速度に設定するようにしても良い。
【００８７】
本実施形態におけるユーザ２０の胴体の検出は、ユーザ２０の胴体部分に設けたＡＲマーカ２１を検出することにより行った。しかし、必ずしもこれに限られるものではなく、例えば、胴体検知センサ１３からの取得画像を解析し、胴体の位置・方向を検出するようにしてもよい。これにより、ユーザ２０にＡＲマーカ２１を設ける必要がなくなる。また、３次元距離画像から骨格モデルを作成し、ユーザ２０の肩や腰の位置、方向を取得するようにしてもよい。この場合、ユーザ２０の全身を画像の取得範囲とすれば、骨格モデルから膝の位置を取得することができ、脚位置検知センサ１４は不要となる。
【００８８】
また胴体検知センサ１３によって、ユーザ２０の上半身全体を含む画像を取得し、画像処理によりユーザ２０の腕部分を除外したものをユーザ２０の胴体として認識し、それにより、ユーザ２０の胴体の位置を検出するようにしてもよい。これにより、ユーザ２０が腕を自らの移動とは無関係に動作させた場合にも、その腕の動きに惑わされることなく、移動体１０は、ユーザ２０の前方にて、ユーザ２０に対し適切な位置に移動して、ユーザ２０に追従できる。
【００８９】
また、ユーザ検知手段として、ユーザ２０の全身の画像を取得し、画像処理により、ユーザ２０の胴体と脚とを区別して認識し、それにより、ユーザ２０の胴体の向きと位置、及びユーザ２０の脚の位置を検出するようにしても良い。
【００９０】
胴体の位置と脚の位置との偏差の微分値により、歩行状態を判定した。しかし、必ずしもこれに限られるものではなく、例えば、胴体の位置、脚の位置の前回値との差分が所定値以上の場合に歩行中と判断するようにしてもよい。
【符号の説明】
【００９１】
１０                移動体
１３                胴体検知センサ（ユーザ検知手段）
１４                脚位置検知センサ（ユーザ検知手段）
２０                ユーザ
３０                ＣＰＵ（移動制御手段）
３５                駆動部（移動手段）
【図１】
0006528280.tif 000002
【図２】
0006528280.tif 000003
【図３】
0006528280.tif 000004
【図４】
0006528280.tif 000005
【図５】
0006528280.tif 000006
【図６】
0006528280.tif 000007
【図７】
0006528280.tif 000008
【図８】
0006528280.tif 000009
【図９】
0006528280.tif 000010
【図１０】
0006528280.tif 000011