(57)【要約】【課題】障害物に遭遇した場合にも、ユーザの前方にて、ユーザの邪魔にならないように、ユーザに追従できる移動体を提供すること。【解決手段】移動体１は、ユーザ認識センサ１３により取得した、移動中のユーザ２の位置およびユーザ２が向いている方向から、ユーザ２の進行経路ｕｐを算出する。そして、周辺認識センサ１４により取得した移動体１の周辺画像から、ユーザ２の進行経路ｕｐ上に存在する障害物を検知した場合は、ユーザ２の位置を始点とした円弧状の、障害物を回避した回避経路ａｐを算出する。回避経路ａｐを円弧状に形成することにより、ユーザ２にとって自然で且つスムーズな移動経路となるので、回避経路ａｐを進行するユーザ２の負担を軽減できる。【選択図】図４
2017129909.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの前方において、ユーザに追従する移動体であって、
当該移動体を移動させる移動手段と、
ユーザを検知するユーザ検知手段と、
前記ユーザ検知手段により検知されたユーザの情報に基づいて、前記移動手段を制御して、当該移動体を移動させる移動制御手段と、
周辺の環境を認識する周辺環境認識手段とを備え、
前記移動制御手段は、前記ユーザ検知手段により検知されたユーザの情報に基づくユーザの進路に前記周辺環境認識手段により認識された障害物があると判断した場合、その障害物を回避した回避経路を空けるように当該移動体を移動させるものであることを特徴とする移動体。
【請求項２】
前記移動制御手段は、前記回避経路を空けるように当該移動体を移動させる場合に、当該移動体を前記障害物から第１所定値以上離れた位置に停止させるものであることを特徴とする請求項１記載の移動体。
【請求項３】
前記移動制御手段は、前記ユーザ検知手段により検知されたユーザの情報に基づくユーザの進路に前記周辺環境認識手段により認識された障害物があると判断した場合、前記ユーザの動きから、前記回避経路を算出するものであることを特徴とする請求項１又は２に記載の移動体。
【請求項４】
前記移動制御手段は、前記回避経路を円弧状のものとして算出するものであることを特徴とする請求項３記載の移動体。
【請求項５】
前記移動制御手段は、円弧状のものとして算出された経路のうち、その半径が最も大きいものを、前記回避経路とするものであることを特徴とする請求項４記載の移動体。
【請求項６】
前記移動制御手段は、円弧状のものとして算出された前記回避経路の半径が第２所定値以下である場合であって、その回避経路をユーザが移動する場合には、ユーザの移動に合わせて当該移動体を回転させることで、当該移動体をユーザに追従させるものであることを特徴とする請求項４又は５に記載の移動体。
【請求項７】
前記移動制御手段は、当該移動体と前記周辺環境認識手段により認識された障害物との間隔が第３所定値未満である場合には、当該移動体による前記ユーザの追従制御を停止するものであることを特徴とする請求項１から６のいずれかに記載の移動体。
【請求項８】
前記移動制御手段は、前記ユーザの進路および前記回避経路が所定幅を有するものとして当該移動体の移動制御を行うものであることを特徴とする請求項１から７のいずれかに記載の移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体に関し、特に、障害物に遭遇した場合にも、ユーザの前方にて、ユーザの邪魔にならないように、ユーザに追従できる移動体に関するものである。
【背景技術】
【０００２】
特許文献１には、周囲環境に基づいて、ユーザとの位置関係を決定し、その決定した位置関係に基づいて、ユーザのそばについて自律的に移動する自律移動装置が開示されている。この自律移動装置によれば、ユーザの追尾に加えて、追尾以外の移動形態をとることが可能となるので、ユーザの前方にて、ユーザに追従しつつ移動することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３１６９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の自律移動装置では、ユーザの前方にてユーザに追従する場合、例えば、ユーザが行き止まり等の障害物に近づいていくと、当該移動装置は、ユーザに先駆けて障害物に近づくので、ユーザと障害物との間に挟まって、却ってユーザの動きを邪魔してしまうという問題点があった。
【０００５】
本発明は、上述した問題点を解決するためになされたものであり、障害物に遭遇した場合にも、ユーザの前方にて、ユーザの邪魔にならないように、ユーザに追従できる移動体を提供することを目的としている。
【課題を解決するための手段】
【０００６】
この目的を達成するために本発明の移動体は、ユーザの前方において、ユーザに追従するものであって、当該移動体を移動させる移動手段と、ユーザを検知するユーザ検知手段と、前記ユーザ検知手段により検知されたユーザの情報に基づいて、前記移動手段を制御して、当該移動体を移動させる移動制御手段と、周辺の環境を認識する周辺環境認識手段とを備え、前記移動制御手段は、前記ユーザ検知手段により検知されたユーザの情報に基づくユーザの進路に前記周辺環境認識手段により認識された障害物があると判断した場合、その障害物を回避したユーザの回避経路を空けるように当該移動体を移動させるものである。
【発明の効果】
【０００７】
請求項１の移動体によれば、移動制御手段は、ユーザ検知手段により検知されたユーザの情報に基づくユーザの進路に、周辺環境認識手段により認識された障害物があると判断した場合、その障害物を回避した回避経路を空けるように当該移動体を移動させる。即ち、当該移動体は回避経路を塞がないように移動する。よって、ユーザが、例えば行き止まり等の障害物に近づいた後、その障害物を回避した回避経路を進もうとした場合、当該移動体はかかる回避経路を塞がないように移動する。従って、当該移動体は、障害物に遭遇した場合にも、ユーザの前方にて、ユーザの邪魔にならないように、ユーザに追従できるという効果がある。
【０００８】
請求項２の移動体によれば、請求項１の奏する効果に加え、次の効果を奏する。移動制御手段は、障害物の回避経路を空けるように当該移動体を移動させる場合に、当該移動体を障害物から第１所定値以上離れた位置に停止させる。よって、ユーザが、例えば行き止まり等の障害物に遭遇した場合にも、障害物と当該移動体との間には第１所定値以上の間隔が保たれるので、障害物の回避経路を、ユーザにとって十分に確保できるという効果がある。なお、第１所定値としては、ユーザの通過に支障を来さない長さであり、例えばユーザの肩幅または胴体の厚さに若干のマージン（例えば５０ｃｍ）を加えた長さを例示できる。
【０００９】
請求項３の移動体によれば、請求項１又は２の奏する効果に加え、次の効果を奏する。移動制御手段は、ユーザ検知手段により検知されたユーザの情報に基づくユーザの進路に、周辺環境認識手段により認識された障害物があると判断した場合、ユーザの動きから、障害物の回避経路を算出する。よって、動作中のユーザにとって、自然で且つスムーズな回避経路を算出できるという効果がある。
【００１０】
請求項４の移動体によれば、請求項３の奏する効果に加え、次の効果を奏する。移動制御手段は、障害物の回避経路を円弧状のものとして算出する。よって、該回避経路を、複雑な曲線や直線の組合せで構成する場合に比べて、容易に算出できるという効果がある。
【００１１】
請求項５の移動体によれば、請求項４の奏する効果に加え、次の効果を奏する。移動制御手段は、円弧状のものとして算出された経路のうち、その半径が最も大きいものを、障害物の回避経路とする。よって、ユーザにとって移動方向の変化が最も緩やかな経路を回避経路とできるので、その分、ユーザによる障害物の回避動作に伴う動作負担を軽減できるという効果がある。
【００１２】
請求項６の移動体によれば、請求項４又は５の奏する効果に加え、次の効果を奏する。円弧状のものとして算出された回避経路の半径が第２所定値以下である場合には、回避経路は当該移動体の位置を中心とした円弧に形成される。よって、移動制御手段は、その回避経路をユーザが移動する場合、ユーザの移動に合わせて当該移動体を回転させることで、当該移動体をユーザに追従させる。これにより、周囲に障害物が迫った状況下においても、回避経路を塞ぐことなく、当該移動体をユーザに追従させることができるという効果がある。なお、第２所定値としては、例えば１．０ｍを例示できる。或いは、第２所定値として、例えばユーザの肩幅または胴体の厚さに若干のマージン（例えば５０ｃｍ）を加えた長さを例示することもできる。
【００１３】
請求項７の移動体によれば、請求項４から６のいずれかの奏する効果に加え、次の効果を奏する。移動制御手段は、当該移動体と周辺環境認識手段により認識された障害物との間隔が第３所定値未満である場合には、当該移動体によるユーザの追従制御を停止する。当該移動体と障害物との間隔が第３所定値未満であれば、その間をユーザが通過しようとすると、ユーザが当該移動体や障害物に接触したり、或いはユーザに追従しようとする当該移動体がユーザや障害物に衝突したりして支障を来す。よって、かかる場合に、移動制御手段は、当該移動体によるユーザの追従制御を停止するので、当該移動体による無理なユーザ追従を防止できるという効果がある。なお、第３所定値としては、ユーザが移動する場合に最低限必要となる間隔を例示できる。具体的には、ユーザの肩幅や胴体の厚さを例示できる。
【００１４】
請求項８の移動体によれば、請求項１から７のいずれかの奏する効果に加え、次の効果を奏する。一般に、人が移動する場合、その経路には、肩幅または胴体の厚み等の一定の幅が必要となる。ここで、移動制御手段は、ユーザの進路および回避経路が所定幅を有するものとして当該移動体の移動制御を行うので、ユーザが障害物や当該移動体と接触することなく移動できる進路や回避経路を確保できるという効果がある。なお、所定幅としては、例えばユーザの肩幅または胴体の厚さに若干のマージン（例えば５０ｃｍ）を加えた長さを例示できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態における移動体およびユーザの外観図である。
【図２】移動体の電気的構成を示すブロック図である。
【図３】メイン処理のフローチャートである。
【図４】（ａ）はユーザの進行経路と回避経路とを示す図であり、（ｂ）はユーザの進行経路と左右の回避経路とを示す図である。
【図５】（ａ）は移動体の制御モードが「前方追従モード」における、ユーザの回避経路と移動体の動きとを示す図であり、（ｂ）は移動体の制御モードが「ターンモード」における、ユーザの回避経路と移動体の動きとを示す図である。
【図６】（ａ）は移動体の制御モードが「ターンモード」に設定された直後における、移動体とユーザとの位置関係を示す図であり、（ｂ）は移動体の制御モードが「ターンモード」に移行し、ユーザが移動体の周囲を歩行している場合における、移動体とユーザとの位置関係を示す図である。
【図７】移動体の制御モードが「被補助モード」における、移動体とユーザとの位置関係を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。まず、図１を参照して、本実施形態における移動体１の構成について説明する。図１は、移動体１およびユーザ２の外観図である。移動体１は、ユーザ２の前方にて、ユーザ２に対し適切な位置に移動して、ユーザ２に追従できる装置として機能する。なお、移動体１の移動範囲である「ユーザ２の前方」とは、例えばユーザ２の前方であって、ユーザ２を中心とする１８０度の範囲である。或いは、ユーザ２の視界の範囲内としてもよい。
【００１７】
図１に示すように、移動体１は、本体部１１と、制御部１２と、ユーザ認識センサ１３と、周辺認識センサ１４と、車輪１５と、表示部１６とを有して構成されている。本体部１１は、略直方体状に形成され、本体部１１内には制御部１２が格納される。
【００１８】
制御部１２は、移動体１の各部を制御するための装置であり、ユーザ認識センサ１３と、周辺認識センサ１４とから取得した情報をもとに、移動体１の移動速度および移動方向を決定し、それに基づく移動指示を駆動部２５（図２参照）を介して、各車輪１５に対して行うものである。
【００１９】
ユーザ認識センサ１３は、ユーザ２の画像を取得するカメラで構成され、本体部１１の側面に設けられる。図１における２点鎖線で描いた三角形のエリアが、ユーザ認識センサ１３の検出範囲である。なお、ユーザ認識センサ１３の上下位置は、必ずしも固定ではなく、例えば、表示部１６と本体部１１との間で変更可能に構成して、ユーザ２の身長によらず、ユーザ２全体の画像が適切に取得できるようにしてもよい。
【００２０】
ユーザ認識センサ１３は、ユーザ２の画像を取得すると、これを制御部１２へ送信する。制御部１２は、ユーザ認識センサ１３で取得された画像を解析し、ユーザ２の位置とユーザ２が向いている方向とを算出する。このユーザ２の位置およびユーザ２が向いている方向は、移動体１の中心Ｃを原点（０，０）とした座標系で示す値とされる（以下「移動体座標系」と称す）。なお、ユーザ認識センサ１３の水平方向の位置は、移動体１の中心Ｃからズレているので、制御部１２は、その距離差を補正した上でユーザ２の位置を算出する。また、制御部１２は、ユーザ認識センサ１３で取得された画像を解析してユーザ２の両肩を検出し、その両肩間の距離、即ち肩幅を算出する。
【００２１】
周辺認識センサ１４は、移動体１の周辺画像を取得するものであり、複数のカメラで構成され（本実施形態では１６個のカメラ）、本体部１１の周囲に等間隔に設置される。制御部１２は、周辺認識センサ１４により取得された移動体１の周辺画像から、ユーザ２の進行経路ｕｐ（図４参照）上に存在する障害物を検出し、その位置を算出する。
【００２２】
車輪１５は、全方位への移動が可能な全方位車輪で構成され、移動体１の下部に設置される。これにより、移動体１は、全方位への移動をスムーズに行うことができる。車輪１５は、駆動部２５のモータ（図示せず）によって回転し、移動体１を移動させる。本実施形態では、３つの車輪１５が設けられるが、車輪１５の数は、必ずしも３つに限られず、適宜の数を採用できる。
【００２３】
表示部１６は、ＬＣＤなどのディスプレイを有し、ディスプレイへの表示によって情報をユーザ２に伝達する装置であり、移動体１の上部に設けられる。図１に示す通り、表示部１６のディスプレイは、ユーザ２に対向する面に設けられる。即ち、表示部１６のディスプレイは、ユーザ認識センサ１３と同方向に向けて配設される。また表示部１６のディスプレイは、タッチパネルとして構成され、ユーザ２による操作を入力可能に構成される。表示部１６は、ＨＭＩ部２６（図２参照）を介して、ユーザ２からの指示を移動体１に入力し、また移動体１の状態や移動経路などをディスプレイに表示する。
【００２４】
図２を参照して、移動体１の電気的構成について説明する。図２は、移動体１の電気的構成を示すブロック図である。制御部１２は、移動体１の各部を制御するための装置であり、図２に示す通り、ＣＰＵ２０、ＲＯＭ２１及びＲＡＭ２２を備え、これらがバスライン２３を介して入出力ポート２４にそれぞれ接続されている。また、入出力ポート２４には、ユーザ認識センサ１３、周辺認識センサ１４、駆動部２５、ＨＭＩ部２６がそれぞれ接続されている。
【００２５】
ＣＰＵ２０は、バスライン２３により接続された各部を制御する演算装置である。ＲＯＭ２１は、ＣＰＵ２０により実行される制御プログラム（例えば、図３のメイン処理）や固定値データ等を格納した書き換え不能な不揮発性メモリである。
【００２６】
ＲＡＭ２２は、ＣＰＵ２０が制御プログラム実行時に各種のワークデータやフラグ等を書き換え可能に記憶するためのメモリであり、ユーザ位置情報メモリ２２ａと、移動体位置情報メモリ２２ｂと、障害物位置情報メモリ２２ｃと、ユーザ幅メモリ２２ｄと、ユーザ進行経路メモリ２２ｅと、回避経路半径メモリ２２ｆと、制御モードメモリ２２ｇと、周辺環境情報メモリ２２ｈとがそれぞれ設けられる。
【００２７】
ユーザ位置情報メモリ２２ａは、移動体１の移動制御で用いられるユーザ２の位置を記憶するメモリであり、Ｘ座標メモリ２２ａ１とＹ座標メモリ２２ａ２と方向メモリ２２ａ３とを有する。Ｘ座標メモリ２２ａ１、Ｙ座標メモリ２２ａ２、方向メモリ２２ａ３の座標系は、いずれも前述した移動体座標系である。制御部１２の電源投入時には、Ｘ座標メモリ２２ａ１、Ｙ座標メモリ２２ａ２、方向メモリ２２ａ３の値は、それぞれ「０」クリアされる。
【００２８】
ユーザ認識センサ１３によってユーザ２の画像の取得が行われると、制御部１２によってその画像が解析され、ユーザ２の位置およびユーザの向いている向きが算出される。Ｘ座標メモリ２２ａ１にはユーザ２の位置のＸ座標が格納され、Ｙ座標メモリ２２ａ２にはユーザ２の位置のＹ座標が格納される。方向メモリ２２ａ３には、ユーザ２が向いている方向（単位：ラジアン）が格納される。その後、Ｘ座標メモリ２２ａ１、Ｙ座標メモリ２２ａ２及び方向メモリ２２ａ３の各値は、必要に応じてユーザ２の位置を原点（０，０）とした座標系（以下「ユーザ座標系」と称す）に変換され（図３のＳ１０）、移動体１の移動制御に用いられる。
【００２９】
移動体位置情報メモリ２２ｂは、移動体１の移動制御で用いられる移動体１の位置を記憶するメモリであり、Ｘ座標メモリ２２ｂ１とＹ座標メモリ２２ｂ２とを有する。Ｘ座標メモリ２２ｂ１、Ｙ座標メモリ２２ｂ２の座標系は、いずれも前述した移動体座標系である。制御部１２の電源投入時には、Ｘ座標メモリ２２ｂ１、Ｙ座標メモリ２２ｂ２の値は、それぞれ「０」クリアされる。また、後述する図３のメイン処理の開始時（Ｓ１）に、Ｘ座標メモリ２２ｂ１とＹ座標メモリ２２ｂ２の値とに、それぞれ「０」が格納される。その後、Ｘ座標メモリ２２ｂ１及びＹ座標メモリ２２ｂ２の値は、必要に応じてユーザ２の位置を原点（０，０）としたユーザ座標系に変換され（図３のＳ１０）、移動体１の移動制御に用いられる。
【００３０】
障害物位置情報メモリ２２ｃは、ユーザ進行経路メモリ２２ｅに記憶される４つの頂点で示される帯状の領域（進行経路ｕｐ（図４参照））に存在する、障害物の位置を記憶するメモリであり、Ｘ座標メモリ２２ｃ１とＹ座標メモリ２２ｃ２とを有する。Ｘ座標メモリ２２ｃ１、Ｙ座標メモリ２２ｃ２の座標系は、いずれも前述した移動体座標系である。制御部１２の電源投入時には、Ｘ座標メモリ２２ｃ１、Ｙ座標メモリ２２ｃ２の値は、それぞれ「０」クリアされる。
【００３１】
周辺認識センサ１４により移動体１の周辺画像の取得が行われると、制御部１２はその移動体１の周辺画像から、ユーザ進行経路メモリ２２ｅに記憶される４つの頂点で示される帯状の領域（進行経路ｕｐ）に存在する障害物の位置を算出する。障害物が複数検出された場合は、それら障害物の位置と、ユーザ位置情報メモリ２２ａの値との距離が最も小さな障害物を選択する。Ｘ座標メモリ２２ｃ１には、その障害物の位置のＸ座標が格納され、Ｙ座標メモリ２２ｃ２には、その障害物の位置のＹ座標が格納される。
【００３２】
本実施形態においては、障害物の検出を行う前にＸ座標メモリ２２ｃ１、Ｙ座標メモリ２２ｃ２の値に、それぞれ「０」が設定される（メイン処理（図３）のＳ２）。これにより障害物位置情報メモリ２２ｃの各値は、移動体１の位置を記憶する移動体位置情報メモリ２２ｂの各値と同じ値となる。よって、障害物の検出が行われた後に、Ｘ座標メモリ２２ｃ１、Ｙ座標メモリ２２ｃ２の値が共に「０」である場合は、制御部１２は、障害物が検出されていないと判断する。なお、Ｘ座標メモリ２２ｃ１及びＹ座標メモリ２２ｃ２の値は、その後、必要に応じてユーザ２の位置を原点（０，０）としたユーザ座標系に変換され（図３のＳ１０）、移動体１の移動制御に用いられる。
【００３３】
ユーザ幅メモリ２２ｄは、ユーザ２の肩幅を記憶するメモリである。制御部１２の電源投入時には、ユーザ幅メモリ２２ｄの値は「０」クリアされる。ユーザ認識センサ１３によってユーザ２の画像が取得されると、制御部１２によって、その画像が解析され、ユーザ２の両肩が検出される。そして、両肩間の長さが算出され、その値がユーザ幅メモリ２２ｄに格納される。ユーザ幅メモリ２２ｄの値は、ユーザ２の進行経路ｕｐや回避経路ａｐの幅ｗｐとして使用される（図４参照）。
【００３４】
ユーザ進行経路メモリ２２ｅは、ユーザ２の進行経路ｕｐの帯状の領域を示す４つの頂点（Ｕｐｌｕ，Ｕｐｒｕ，Ｕｐｆｌ，Ｕｐｆｒ）の座標（図４参照）を記憶するメモリである。制御部１２の電源投入時に、ユーザ進行経路メモリ２２ｅの４つの頂点の座標には「０」が設定され、ユーザ２の進行経路ｕｐの領域が未だ算出されていないことを示す。ユーザ認識センサ１３より、ユーザ２の位置がユーザ位置情報メモリ２２ａに格納され、ユーザ２の肩幅がユーザ幅メモリ２２ｄに格納された後、制御部１２によって、ユーザ位置情報メモリ２２ａの値とユーザ幅メモリ２２ｄの値とから、ユーザ２の進行経路ｕｐの領域が算出される。その算出されたユーザ２の進行経路ｕｐの帯状の領域を示す４つの頂点の座標（Ｕｐｌｕ，Ｕｐｒｕ，Ｕｐｆｌ，Ｕｐｆｒ）が、ユーザ進行経路メモリ２２ｅに格納される。
【００３５】
回避経路半径メモリ２２ｆは、ユーザ２の進行経路ｕｐ上に存在する、障害物を回避するための回避経路ａｐの半径を記憶するメモリである。本実施形態では、回避経路ａｐは円弧状の経路して算出される。制御部１２の電源投入時には、回避経路半径メモリ２２ｆの値は「０」クリアされる。障害物位置情報メモリ２２ｃの値から、ユーザ２の進行経路ｕｐ上に障害物が存在すると判断された場合、制御部１２は、その障害物位置情報メモリ２２ｃの値と、ユーザ位置情報メモリ２２ａの値と、ユーザ幅メモリ２２ｄの値とから、円弧状の回避経路ａｐを算出する。その円弧の半径が回避経路半径メモリ２２ｆへ格納される。なお、回避経路ａｐの半径は、回避経路ａｐが右回転の円弧状の場合に正の値として記憶され、左回転の円弧状の場合に負の値として記憶される。
【００３６】
制御モードメモリ２２ｇは、移動体１の制御モードを記憶するためのメモリである。移動体１の制御モードには「前方追従モード」、「ターンモード」、「被補助モード」が設けられている。制御部１２の電源投入時には、制御モードメモリ２２ｇの値に「被補助モード」が設定される。
【００３７】
「前方追従モード」は、移動体１がユーザ２の前方にて、ユーザ２に対して適切な位置に移動して、ユーザ２に追従するモードである。ユーザ２の進行経路ｕｐ上に障害物が存在しない場合や、回避経路半径メモリ２２ｆの値が第２所定値より大きい場合は、制御モードメモリ２２ｇに「前方追従モード」が設定される。
【００３８】
「ターンモード」は、移動体１とユーザ２との相対角度を保ったまま、移動体１をその場で回転移動させて、ユーザ２に追従させるモードである。回避経路半径メモリ２２ｆの値が第２所定値以下で、かつ移動体位置情報メモリ２２ｂの値と、障害物位置情報メモリ２２ｃとの距離の値が第３所定値以上の場合、制御モードメモリ２２ｇに「ターンモード」が設定される。
【００３９】
「被補助モード」は、移動体１を停止させた後に、ユーザ２の手動操作などによって、移動体１を移動させるモードである。移動体位置情報メモリ２２ｂの値と、障害物位置情報メモリ２２ｃの値との距離が第３所定値未満である場合、即ち、移動体１と障害物とが余りに接近した状態である場合に、制御モードメモリ２２ｇに「被補助モード」が設定される。
【００４０】
なお、第２所定値および第３所定値としては、例えばいずれも１．０ｍを例示できる。かかる場合、回避経路ａｐの半径（回避経路半径メモリ２２ｆの値）が、１．０ｍより大きければ「前方追従モード」とされ、回避経路ａｐの半径が１．０ｍであれば「ターンモード」とされ、更に回避経路ａｐの半径が１．０ｍ未満であれば「被補助モード」とされる。
【００４１】
また、これら第２所定値、第３所定値の各値は、必ずしもこれに限られるものではなく、例えばユーザ２の肩幅（ユーザ幅メモリ２２ｄの値）に応じて変化する値としても良い。具体的には、ユーザ２の肩幅に、ある程度のマージン（例えば４０〜５０ｃｍ）を加えたものを第２所定値とし、ユーザ２の肩幅に小さめのマージン（例えば２０〜５０ｃｍ）を加えたものを第３所定値とするようにしても良い。更に、第２所定値と第３所定値とは、「第２所定値≧第３所定値」の関係を維持していれば、本実施例のように同じ値であっても良いし、異なる値であっても良い。第２所定値と第３所定値とが異なる値で構成されれば、「ターンモード」へ移行する範囲が大きくなる。
【００４２】
周辺環境情報メモリ２２ｈは、周辺認識センサ１４によって取得された、移動体１の周辺画像を記憶するメモリ領域である。制御部１２の電源投入時には、周辺環境情報メモリ２２ｈの全領域に「無効画像（具体的には「０」）」が設定される。周辺認識センサ１４によって移動体１の周辺画像が取得されると、その周辺画像が周辺環境情報メモリ２２ｈに記憶される。
【００４３】
駆動部２５は、移動体１を移動させるための装置であり、車輪１５および車輪１５の駆動源となるモータ（図示せず）などから構成される。制御部１２から移動信号が駆動部２５へ入力されると、入力された信号に基づいてモータが回転し、当該モータの回転が動力となって車輪１５が駆動し、移動体１を動作させる。
【００４４】
ＨＭＩ部２６は、ユーザ２へ情報を出力すると共に、ユーザ２による移動体１への指示を入力するためのインタフェイスである。前述した通り、ディスプレイとタッチパネルとを有した表示部１６で構成される。ＨＭＩ部２６は、制御部１２から入力された制御信号に応じて表示部１６のディスプレイに情報を出力して表示する。一方、ユーザ２から表示部１６のタッチパネルを経由してＨＭＩ部２６に指示が入力されると、ＨＭＩ部２６は、当該入力に応じた制御信号を制御部１２に出力する。移動体１が「被補助モード」にある場合に、ユーザ２はタッチパネルを介して移動体１を所望の位置に移動させる。
【００４５】
なお、ディスプレイ及びタッチパネルと共に、或いはこれらに代えて、音声を出力するスピーカや音声を入力するマイクをＨＭＩ部２６に設けるようにしてもよい。この場合には、ディスプレイへの表示と共に或いはディスプレイへの表示に代えて、スピーカから出力される音声によって移動体１の情報がユーザ２に出力され、またタッチパネルへの入力と共に或いはタッチパネルへの入力に代えて、ユーザ２が発する音声をマイクから入力することによって移動体１への指示を行うことができる。
【００４６】
次に、図３から図７を参照して、制御部１２のＣＰＵ２０で実行される処理について説明する。図３は、メイン処理のフローチャートである。メイン処理により、移動体１は、ユーザ２の進行経路ｕｐや、移動体１と障害物との距離、ユーザ２の回避経路ａｐなどを算出し、それらに基づいて制御モードを設定する。制御モードが設定されると、移動体１は、その設定された制御モードに基づいて、移動体１の移動制御を行う。なお、メイン処理は１００ｍｓ毎のインターバル割り込み処理により繰り返し実行される。
【００４７】
メイン処理では、まず移動体位置情報メモリ２２ｂのＸ座標メモリ２２ｂ１と、Ｙ座標メモリ２２ｂ２とにそれぞれ「０」を設定し（Ｓ１）、障害物位置情報メモリ２２ｃのＸ座標メモリ２２ｃ１と、Ｙ座標メモリ２２ｃ２とにそれぞれ「０」を設定する（Ｓ２）。
【００４８】
次に、ユーザ認識センサ１３からユーザ２の位置を取得し、そのＸ座標をユーザ位置情報メモリ２２ａのＸ座標メモリ２２ａ１に、Ｙ座標をＹ座標メモリ２２ａ２に、ユーザ２が向いている方向を方向メモリ２２ａ３に、それぞれ保存する（Ｓ３）。具体的には、ユーザ認識センサ１３から、ユーザ２を含む画像を取得する。制御部１２は、その画像をエッジ抽出およびパターン認識によってユーザ２を認識し、その位置と、ユーザ２が向いている方向とを取得する。このように取得されたユーザ２の位置をユーザ位置情報メモリ２２ａのＸ座標メモリ２２ａ１、Ｙ座標メモリ２２ａ２に、ユーザ２が向いている方向を方向メモリ２２ａ３にそれぞれ保存する。
【００４９】
次に、ユーザ認識センサ１３からユーザ２の肩幅を取得し、ユーザ幅メモリ２２ｄへ保存する（Ｓ４）。具体的には、ユーザ認識センサ１３から、ユーザ２を含む画像を取得する。制御部１２は、その画像をエッジ抽出およびパターン認識によって、ユーザ２の両肩を認識し、その両肩間の距離、即ちユーザ２の肩幅を算出する。算出された肩幅をユーザ幅メモリ２２ｄへ保存する。なお、肩幅は、ユーザ位置情報メモリ２２ａの方向メモリ２２ａ３の値に応じて、適宜補正した上で、ユーザ幅メモリ２２ｄへ保存するようにしてもよい。
【００５０】
その後、周辺認識センサ１４から移動体１の周辺画像を取得し、周辺環境情報メモリ２２ｈへ保存する（Ｓ５）。また、ユーザ位置情報メモリ２２ａの値とユーザ幅メモリ２２ｄの値とから、ユーザ２の進行経路ｕｐを算出し、ユーザ進行経路メモリ２２ｅへ保存する（Ｓ６）。
【００５１】
ここで、図４（ａ）を参照して、ユーザ２の進行経路ｕｐの算出およびユーザ進行経路メモリ２２ｅへの値の保存（４座標の保存）について説明する。図４（ａ）は、ユーザ２の進行経路ｕｐと回避経路ａｐとを示す図である。図４（ａ）において、ユーザ２の位置をＰｕ（Ｘｕ，Ｙｕ）と表し、移動体１の位置をＰｍ（Ｘｍ，Ｙｍ）と表す。図４（ａ）は、移動体１と、ユーザ２とが、三方を壁に囲まれた領域を移動している状態である。
【００５２】
進行経路ｕｐは、経路の始点が位置Ｐｕで、幅ｗｐ、長さｌｐの矩形の領域として算出される。進行経路ｕｐの幅ｗｐは、ユーザ幅メモリ２２ｄに記憶されるユーザ２の肩幅とされる。この幅は、位置Ｐｕを中心に左右それぞれｗｐ／２ずつ設けられる。進行経路ｕｐの方向は、ユーザ２が向いている方向、即ちユーザ位置情報メモリ２２ａの方向メモリ２２ａ３の値の方向とされる。更に、進行経路ｕｐの長さｌｐとしては第４所定値が設定される。
【００５３】
なお、本実施形態において、第４所定値としては例えば２．０ｍを例示できる。しかし、必ずしもこれに限られるものではなく、第４所定値をユーザ２の歩行速度に応じて変化する値としても良い。具体的には、ユーザ２の歩行速度が速い場合には第４所定値を大きく、歩行速度が遅い場合には第４所定値を小さくしても良い。また、ユーザ２の歩行速度にある係数を乗じた値を第４所定値としても良い。更に、ＨＭＩ部２６を介して任意に設定した値を、第４所定値としてもよい。
【００５４】
このように進行経路ｕｐは、位置Ｐｕ（ユーザ位置情報メモリ２２ａのＸ座標メモリ２２ａ１、Ｙ座標メモリ２２ａ２の値）と、幅ｗｐ（ユーザ幅メモリ２２ｄの値）と、ユーザ２が向いている方向（ユーザ位置情報メモリ２２ａの方向メモリ２２ａ３）とによって算出される。これは、ユーザ２が、現在のユーザ２の向いている方向のまま移動した場合の、ユーザ２の進行経路ｕｐである。このように算出された、進行経路ｕｐの帯状の領域の４つの頂点（Ｕｐｌｕ，Ｕｐｒｕ，Ｕｐｆｌ，Ｕｐｆｒ）の座標（４座標）が、ユーザ進行経路メモリ２２ｅに保存される。
【００５５】
図３に戻る。Ｓ６の処理後、ユーザ位置情報メモリ２２ａの値とユーザ進行経路メモリ２２ｅの値と周辺環境情報メモリ２２ｈの値とから、ユーザ２の進行経路ｕｐ上に存在する、ユーザ２に最も近い障害物を検索し、その障害物の位置を障害物位置情報メモリ２２ｃへ保存する（Ｓ７）。
【００５６】
ここで、図４（ａ）を参照して、障害物の位置の取得について説明する。図４（ａ）においては、ユーザ２の進行方向に壁が存在する。この壁の一部は、ユーザ２の進行経路ｕｐの領域内に存在している。そのため、ユーザ２が、現在のユーザ２の向いている方向のまま歩行すると、やがてこの壁に衝突する。即ち、この壁がユーザ２の歩行に対する障害物となる。従って、この場合、進行経路ｕｐの領域内に含まれている、壁の面に存在する全ての座標が障害物の位置の候補となる。
【００５７】
このように障害物の位置の候補が複数存在する場合は、障害物の位置とユーザ２の位置Ｐｕとの距離が最も小さいものが、障害物の位置とされる。即ち、現在のユーザ２の向いている方向のまま歩行して、最も早くユーザ２と接触する位置の座標が、障害物の位置とされる。図４（ａ）においては、進行経路ｕｐの領域内に存在する壁の面のうち、右端の位置Ｐｏ（Ｘｏ，Ｙｏ）が障害物の位置となる。この障害物の位置のＸ座標が障害物位置情報メモリ２２ｃのＸ座標メモリ２２ｃ１に、Ｙ座標が障害物位置情報メモリ２２ｃのＹ座標メモリ２２ｃ２にそれぞれ保存される。
【００５８】
一方、進行経路ｕｐの領域内に障害物が存在しない場合は、障害物位置情報メモリ２２ｃのＸ座標メモリ２２ｃ１及びＹ座標メモリ２２ｃ２には座標が保存されないため、Ｘ座標メモリ２２ｃ１、Ｙ座標メモリ２２ｃ２の値はそれぞれ、図３のＳ２の処理で設定された「０」のままとなる。
【００５９】
このように本実施形態では、ユーザ２の進行経路ｕｐの領域内でのみ、障害物の検索を行う。よって、ユーザ２の移動に対して、不要な領域への障害物の検索を行うことがないので、障害物検索の制御部１２の処理負荷を小さくできる。
【００６０】
図３に戻る。Ｓ７の処理後、障害物位置情報メモリ２２ｃの値が有効かを確認する（Ｓ８）。本実施形態において、制御部１２は、障害物位置情報メモリ２２ｃのＸ座標メモリ２２ｃ１、Ｙ座標メモリ２２ｃ２のいずれかの値が「０」以外である場合、即ち障害物の位置が取得された場合には、有効であると判断する。
【００６１】
Ｓ８において、障害物位置情報メモリ２２ｃの値が無効であると判断された場合（Ｓ８：Ｎｏ）、即ち障害物位置情報メモリ２２ｃのＸ座標メモリ２２ｃ１、Ｙ座標メモリ２２ｃ２の双方の値が「０」である場合には、ユーザ２の進行経路ｕｐ上には何ら障害物が無いので、ユーザ２および移動体１の移動に支障はない。よって、かかる場合には、制御モードメモリ２２ｇに「前方追従モード」を設定する（Ｓ９）。
【００６２】
一方、障害物位置情報メモリ２２ｃの値が有効と判断された場合は（Ｓ８：Ｙｅｓ）、ユーザ位置情報メモリ２２ａ、移動体位置情報メモリ２２ｂ、障害物位置情報メモリ２２ｃ、ユーザ進行経路メモリ２２ｅの各値をそれぞれユーザ座標系に変換する（Ｓ１０）。ユーザ座標系は、前述した通り、ユーザ２の位置Ｐｕ（Ｘｕ，Ｙｕ）を原点（０，０）とした座標系である。ユーザ座標系に変換するのは、後のＳ１２の処理で行うユーザ２の回避経路ａｐの算出を、ユーザ２の位置を中心として行うためである。
【００６３】
Ｓ１０の処理後、移動体位置情報メモリ２２ｂの値と、障害物位置情報メモリ２２ｃの値との距離が、前述した第３所定値以上か確認する（Ｓ１１）。かかる距離が第３所定値以上の場合は（Ｓ１１：Ｙｅｓ）、ユーザ位置情報メモリ２２ａの値と、障害物位置情報メモリ２２ｃの値と、ユーザ幅メモリ２２ｄの値とから、円弧状のユーザ２の回避経路ａｐを複数算出する。そして、算出された円弧の半径が最も大きな回避経路ａｐの半径を、回避経路半径メモリ２２ｆへ保存する（Ｓ１２）。
【００６４】
ここで、図４を参照して、Ｓ１２の処理における、ユーザ２の回避経路ａｐの算出について説明する。図４（ａ）の回避経路ａｐは、ユーザ２が進行経路ｕｐに存在する障害物Ｐｏを回避して移動するための経路である。回避経路ａｐは、経路の始点が位置Ｐｕで、幅ｗｐ、経路の中心部の円弧の長さがｌｐ、円弧の中心が位置Ｏａｐ、半径Ｒの円弧状に形成される。幅ｗｐの大きさは、進行経路ｕｐと同じく、ユーザ幅メモリ２２ｄの値、即ちユーザ２の肩幅である。この幅ｗｐは、位置Ｐｕを中心に左右それぞれｗｐ／２ずつ設けられる。また、長さｌｐの大きさも、進行経路ｕｐと同じく、前述の第４所定値とされる。制御部１２は、回避経路ａｐの半径Ｒを、障害物位置情報メモリ２２ｃの値と、ユーザ位置情報メモリ２２ａの値と、ユーザ幅メモリ２２ｄの値とから算出し、回避経路半径メモリ２２ｆへ保存する。
【００６５】
回避経路ａｐの半径Ｒの算出方法について説明する。まず、回避経路ａｐの円弧の中心位置Ｏａｐを、位置Ｐｕから経路の中心部の円弧の長さがｌｐ、かつ幅がｗｐの回避経路ａｐが作成できる位置まで、ユーザ座標系のＸ軸上を正の方向（図４（ａ）では右方向）へ移動させ、その位置で回避経路ａｐの領域を暫定的に作成する。
【００６６】
暫定的に作成された回避経路ａｐの中心部の円弧と、障害物の位置Ｐｏとの最短距離ｄｐを算出する。算出された最短距離ｄｐが、ユーザ幅メモリ２２ｄの値の１／２以上、即ちユーザ２の肩幅の１／２以上である場合は、その暫定的な回避経路ａｐは障害物から十分に離れているので、もっと障害物に近づけた回避経路ａｐを作成できる。即ち、かかる場合には、もっと半径の大きな、もっと進行方向の変化が緩やかな回避経路ａｐを作成できる。回避経路ａｐの半径が大きいほど、ユーザ２の進行方向の変化を小さくできるので、ユーザ２の移動負担を軽減できる。よって、かかる場合には、円弧の中心位置Ｏａｐをユーザ座標系のＸ軸上に更に正方向に移動させた上で、再び回避経路ａｐの領域を暫定的に作成する。
【００６７】
再度、暫定的に作成された回避経路ａｐの中心部の円弧と、障害物の位置Ｐｏとの最短距離ｄｐを算出し、その最短距離ｄｐがユーザ２の肩幅の１／２以上である場合は、更に円弧の中心位置Ｏａｐをユーザ座標系のＸ軸上に正方向に移動させる。以下、この処理を繰り返す。
【００６８】
最短距離ｄｐがユーザ２の肩幅の１／２となった場合は、それを正規の回避経路ａｐとする。よって、その時点の円弧の中心位置Ｏａｐと位置Ｐｕとの距離を、回避経路ａｐの半径Ｒとして、回避経路半径メモリ２２ｆへ保存する。図４（ａ）の回避経路ａｐは、円弧の中心位置Ｏａｐがユーザ座標系のＸ軸上の正方向にあり、回避経路ａｐが右回転の円弧状に形成されるので、その半径Ｒは、回避経路半径メモリ２２ｆへ正の値として保存される。
【００６９】
一方、再度、暫定的に作成された回避経路ａｐの最短距離ｄｐがユーザ２の肩幅の１／２以下となった場合は、一つ前の処理で求めた回避経路ａｐを、正規の回避経路ａｐとする。よって、その場合には、一つ前の処理で求めた円弧の中心位置Ｏａｐと位置Ｐｕとの距離を、半径Ｒとして、回避経路半径メモリ２２ｆへ保存する。これにより、円弧状の回避経路ａｐのうち、最も大きな半径の回避経路ａｐを算出できる。
【００７０】
図４（ａ）では、ユーザ２の右側の回避経路ａｐを算出する例を挙げたが、ユーザ２の左側に対しても同様に回避経路ａｐの半径Ｒを算出する。これについて、図４（ｂ）を参照して説明する。図４（ｂ）は、ユーザ２の進行経路ｕｐと左右の回避経路ａｐｌ，ａｐｒとを示す図である。ユーザ２の前方の障害物の位置Ｐｏに対して、ユーザ２の右側の回避経路ａｐｒは、円弧の中心位置Ｏａｐｒ、半径Ｒｒであり、回避経路ａｐｒの中心部の円弧と位置Ｐｏとの最短距離がｄｐｒである。同様に、ユーザ２の左側の回避経路ａｐｌは、円弧の中心位置Ｏａｐｌ、半径Ｒｌであり、回避経路ａｐｌの中心部の円弧と位置Ｐｏとの最短距離がｄｐｌである。
【００７１】
半径Ｒｒ，Ｒｌの算出方法は、前述した通りであるが、右側の回避経路ａｐｒを再計算する場合には、円弧の中心位置Ｏａｐｒをユーザ座標系のＸ軸上の正方向（図４（ｂ）の右方向）に移動していく。一方、左側の回避経路ａｐｌを再計算する場合には、円弧の中心位置Ｏａｐｌをユーザ座標系のＸ軸上の負方向（図４（ｂ）の左方向）に移動していく。なお、左側の回避経路ａｐｌは、円弧の中心位置Ｏａｐｌがユーザ座標系のＸ軸上の負方向にあり、左回転の円弧状に形成されるので、その半径Ｒｌは、回避経路半径メモリ２２ｆへ負の値として保存される。また半径Ｒｒの算出処理と、半径Ｒｌの算出処理とは、同時に行ってもよいし、どちらか一方を先に行い、他方を後に行ってもよい。
【００７２】
最終的に算出された、半径Ｒｒと、半径Ｒｌとの大きさを比較し、大きい方を半径Ｒとし、回避経路半径メモリ２２ｆへ保存する。即ち、算出され得る半径Ｒのうち、最も大きな半径が回避経路半径メモリ２２ｆへ保存される。半径Ｒｒと、半径Ｒｌとの大きさが同じであった場合は、右側または左側の回避経路ａｐのうち、どちらを選択するかを、制御部１２にあらかじめ設定しておいてもよい。また、その回避経路ａｐに至るまでの進行状況から、右側または左側の回避経路ａｐのいずれかを選択するようにしても良い。
【００７３】
このように回避経路ａｐの算出に当たっては、回避経路ａｐの円弧の中心位置Ｏａｐを、ユーザ２の位置Ｐｕから遠ざけながら、回避経路ａｐの領域を暫定的に作成していく。よって、最終的に算出された、回避経路ａｐにおける中心部の半径Ｒは、回避経路ａｐの中で最も大きな半径となる。これにより、ユーザ２にとって移動方向の変化が最も緩やかな経路を回避経路ａｐとできるので、その分、ユーザ２による障害物の回避動作に伴う動作負担を軽減できる。
【００７４】
図３に戻る。Ｓ１２の処理後、回避経路半径メモリ２２ｆの値が第２所定値以下か確認する（Ｓ１３）。回避経路半径メモリ２２ｆの値が第２所定値以下の場合には（Ｓ１３：Ｙｅｓ）、移動体１と障害物との距離が狭く「前方追従モード」を維持できないので、制御モードメモリ２２ｇに「ターンモード」を設定する（Ｓ１４）。一方、回避経路半径メモリ２２ｆの値が第２所定値より大きい場合には（Ｓ１３：Ｎｏ）、回避経路ａｐを算出したものの、移動体１と障害物との間の距離は十分に確保されており、「前方追従モード」を維持できる。よって、かかる場合には制御モードメモリ２２ｇに「前方追従モード」を設定する（Ｓ９）。
【００７５】
また、Ｓ１１の処理において、移動体位置情報メモリ２２ｂの値と、障害物位置情報メモリ２２ｃの値との距離が、第３所定値未満の場合は（Ｓ１１：Ｎｏ）、移動体１と障害物との距離は極めて狭く、移動体１の追従移動（自律移動）を継続していては、移動体１が障害物やユーザ２に接触したり衝突しかねない。よって、かかる場合には、制御モードメモリ２２ｇに「被補助モード」を設定して（Ｓ１５）、移動体１の追従移動（自律移動）を停止する。Ｓ９、Ｓ１４及びＳ１５の処理後、制御モードメモリ２２ｇの値に応じた移動体１に移動制御を行う（Ｓ１６）。
【００７６】
なお、Ｓ１５の処理で、移動体１の制御モードとして「被補助モード」を設定する場合には、移動体１をその位置で停止させて「被補助モード」とするものの他、移動体１を障害物から十分に離れた位置まで移動させた後に停止させて「被補助モード」とするようにしても良い。なお、障害物から十分に離れた位置としては、移動体１と障害物との間をユーザ２が余裕をもって通過できる位置（距離）であり、ユーザ２の肩幅または胴体の厚さに若干のマージン（例えば５０ｃｍ）を加えた距離を例示できる。
【００７７】
次に、図５から図７を参照して、制御モードメモリ２２ｇの値に応じた移動体１の移動制御について説明する。図５（ａ）は、移動体１の制御モードが「前方追従モード」における、ユーザ２の回避経路ａｐと移動体１の動きとを示す図であり、図５（ｂ）は、移動体１の制御モードが「ターンモード」における、ユーザ２の回避経路ａｐと移動体１の動きとを示す図である。
【００７８】
図５（ａ）において、回避経路ａｐは、半径Ｒ１、中心位置Ｏａｐ１の円弧で形成され、障害物の位置Ｐｏと移動体１との距離はｄｏｍである。ここで、距離ｄｏｍは前述した第３所定値以上で、半径Ｒ１は前述した第２所定値よりも大きい。即ち、移動体１と障害物との距離がユーザ２の通過に十分なだけ確保され（第３所定値以上）、回避経路ａｐの半径が大きい（第２所定値以上）と判断される場合は（図３中、Ｓ１１：Ｙｅｓ、Ｓ１３：Ｎｏ）、制御部１２は制御モードメモリ２２ｇに「前方追従モード」を設定する（図３中、Ｓ９）。制御モードメモリ２２ｇの値が「前方追従モード」の場合は、移動体１はユーザ２の前方にて、ユーザ２に対し適切な位置に移動して、ユーザ２の追従移動を行う（図３中、Ｓ１６）。
【００７９】
勿論、ユーザ２の進行経路ｕｐ上に障害物が存在しない場合、即ち、図３のＳ８において障害物位置情報メモリ２２ｃの値が有効でない場合も（図３中、Ｓ８：Ｎｏ）、制御部１２は制御モードメモリ２２ｇに「前方追従モード」を設定し（図３中、Ｓ９）、ユーザ２の前方において、ユーザ２の追従移動を行う。
【００８０】
図５（ｂ）において、回避経路ａｐは、半径Ｒ２、中心位置Ｏａｐ２の円弧で形成される。ここで、距離ｄｏｍは第３所定値以上で、半径Ｒ２は第２所定値以下である。即ち、移動体１と障害物との距離はユーザ２の通過に十分なだけ確保される一方、回避経路ａｐの半径Ｒ２が小さいと判断される。よって、その場合は（図３中、Ｓ１１：Ｙｅｓ、Ｓ１３：Ｙｅｓ）、制御部１２は制御モードメモリ２２ｇに「ターンモード」を設定する（図３中、Ｓ１４）。
【００８１】
制御モードメモリ２２ｇの値が「ターンモード」の場合は、移動体１は、その位置で回転移動を行う（図３中、Ｓ１６）。即ち、移動体の位置Ｐｍと、円弧の中心位置Ｏａｐ２とが同じ位置になる。これにより、制御モードが「ターンモード」に設定された移動体１は、ユーザ２の回避経路ａｐの移動に伴って、その場で回転しつつ、ユーザ２に対する追従移動を行う。
【００８２】
図６を参照して、移動体１の制御モードが「ターンモード」に設定された場合の、移動体１の回転移動について説明する。図６（ａ）は、移動体１の制御モードが「ターンモード」に設定された直後における、移動体１とユーザ２との位置関係を示す図であり、図６（ｂ）は、移動体１の制御モードが「ターンモード」で、ユーザ２が移動体１の周囲を歩行している場合における、移動体１とユーザ２との位置関係を示す図である。制御モードが「ターンモード」の移動体１は、移動体１とユーザ２との相対角度を保つように、回転移動を行う。図６（ａ）において、移動体１とユーザ２との相対角度は、θｕｍである。ここで、θｕｍは、前述のユーザ座標系で算出された値である。
【００８３】
図６（ｂ）において、位置Ｐｕ’は、図６（ａ）の時点におけるユーザ２の位置であり、位置Ｐｕは、位置Ｐｕ’から移動したある時点のユーザ２の位置である。ユーザ２の位置Ｐｕ’から位置Ｐｕへの移動に合わせて、移動体１は回転移動を行う。その結果、位置Ｐｕとユーザ２との相対角度は、図６（ａ）の時点と同じθｕｍを維持する。つまり、制御モードが「ターンモード」に設定された場合、移動体１は、ユーザ２との相対角度θｕｍを保ったまま、回転移動を行う。これにより、ユーザ２に対し移動体１の一部が常に対面するように回転移動することとなり、移動体１がＸ，Ｙ座標に移動しなくても、ユーザ２は、移動体１が自身に対し追従移動していることを確認できる。
【００８４】
次に、図７を参照して、制御モードメモリ２２ｇの値が「被補助モード」に設定された場合の移動体１の移動制御について説明する。図７は、移動体１の制御モードが「被補助モード」における、移動体１とユーザ２との位置関係を示す図である。
【００８５】
図７においては、移動体１と障害物との距離ｄｏｍは第３所定値未満である。即ち、移動体１と障害物との間隔が極めて狭く、ユーザ２がその間を通過できないと判断される。かかる場合は（図３中、Ｓ１１：Ｎｏ）、制御部１２は制御モードメモリ２２ｇに「被補助モード」を設定する（図３中、Ｓ１５）。すると、移動体１はユーザ２との追従移動（回転移動を含む）を停止し（図３中、Ｓ１６）、ユーザ２による手動操作を受け付ける状態となる。かかる状態において、ユーザ２からＨＭＩ部２６を介して、移動体１の移動指示が行われると、移動体１はその指示に応じて動作（移動）する。移動体１が障害物と極めて近い位置にある場合などは、かかるユーザ２による手動操作によって、移動体１を周囲に障害物のない、ユーザ２に対する追従制御が可能な位置まで移動することにより、再度、移動体１の追従移動（自律移動）が可能となる。
【００８６】
以上説明した通り、本実施形態の移動体１によれば、ユーザ認識センサ１３により取得した、移動中のユーザ２の位置およびユーザ２が向いている方向から、ユーザ２の進行経路ｕｐを算出する。そして、周辺認識センサ１４により取得した移動体１の周辺画像から、ユーザ２の進行経路ｕｐ上に存在する障害物を検知した場合は、ユーザ２の位置を始点とした円弧状の、障害物を回避した回避経路ａｐを算出する。回避経路ａｐを円弧状に形成することにより、ユーザ２にとって自然で且つスムーズな移動経路となるので、回避経路ａｐを進行するユーザ２の負担を軽減できる。また、回避経路ａｐは円弧状に形成されるので、その円弧の中央部の半径を求めることで回避経路ａｐを算出できる。よって、回避経路ａｐを複雑な曲線や直線の組合せで構成する場合に比べ、容易に算出でき、制御部１２の処理負荷を低くすることができる。
【００８７】
回避経路ａｐの中央部の円弧と、ユーザ２の進行経路ｕｐ上の障害物との最短距離は、ユーザ２の肩幅の１／２以上とされる。これにより、ユーザ２が回避経路ａｐを移動する際、ユーザ２は障害物に接触することがない。
【００８８】
移動体と障害物との距離が、第３所定値未満の場合（即ちユーザ２の歩行スペースがない場合）は、移動体１によるユーザ２の追従移動を停止し、ユーザ２が移動体１の移動を指示する「被補助モード」に移行する。「被補助モード」において、ユーザ２が移動体１を障害物から離れた位置へ移動させることにより、移動体１と障害物との狭い間をユーザ２が移動する必要がなくなる。また「被補助モード」に移行することによって、移動体１による無理なユーザ追従を防止できる。よって、ユーザ２が移動体１や障害物に近づくことで起きうる、接触あるいは転倒を防ぐことができる。
【００８９】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【００９０】
本実施形態におけるユーザ２の幅は肩幅とした。しかし、必ずしもこれに限られるものではなく、例えば、ユーザ２の胴体の厚さや、そのほかの値を用いても良い。また、これを、どんなユーザ２に対しても適応される固定値（例えば１２０ｃｍ）としてもよい。固定値とした場合には、制御部１２の制御負担を大幅に軽減できる。
【００９１】
ユーザ２の進行経路ｕｐの帯状の領域を示す値（ユーザ進行経路メモリ２２ｅに記憶される値）としては、帯状の領域の４つの頂点座標とした。しかし、必ずしもこれに限られるものではなく、例えば、ユーザ２の進行経路ｕｐの領域の境界線を表す関数のパラメータを格納してもよい。
【００９２】
また移動体１と障害物との間隔が狭い場合に、必ずしも「被補助モード」や「ターンモード」とする必要は無く、かかる場合に、移動体１を障害物から十分に離れた位置まで移動させるように構成しても良い。なお、障害物から十分に離れた位置（距離）としては、移動体１と障害物との間をユーザ２が余裕をもって通過できる距離であり、ユーザ２の肩幅または胴体の厚さに若干のマージン（例えば５０ｃｍ）を加えた距離を例示できる。
【符号の説明】
【００９３】
１                  移動体
２                  ユーザ
１３                ユーザ認識センサ（ユーザ検知手段）
１４                周辺認識センサ（周辺環境認識手段）
２０                ＣＰＵ（移動制御手段）
２５                駆動部（移動手段）
ａｐ                回避経路
ｕｐ                進行経路
【図１】
2017129909.tif 000003
【図２】
2017129909.tif 000004
【図３】
2017129909.tif 000005
【図４】
2017129909.tif 000006
【図５】
2017129909.tif 000007
【図６】
2017129909.tif 000008
【図７】
2017129909.tif 000009