(57)【要約】      （修正有）【課題】通路内で移動ロボットを所望の経路に早く誘導する。【解決手段】移動ロボット３０は、移動速度と進行方向とを変更する駆動部と、目標地点までの移動経路に沿って配置された複数の被検出体１１を検出する検出部と、検出部により検出された被検出体までの距離Ｚと方向とを取得し、被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて駆動部を駆動制御する制御部と、を備える。制御部は、検出部により検出された被検出体までの距離と方向に基づき、境界４０に沿って配置された被検出体と移動ロボットの現在位置との移動経路に対して直交する方向の距離ｘを算出し、当該距離ｘと一定距離Ｘｒｅｆとの差分δｘを算出し、当該差分δｘを０（ゼロ）とするように駆動部に対する駆動制御を実行する。【選択図】図６
2020154733.tif 000002
【特許請求の範囲】
【請求項１】
移動速度と進行方向とを変更する駆動部と、
目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、
前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、
を備え、
前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、また、前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、さらに、前記移動ロボットが前記境界から一定距離（Ｘｒｅｆ）を保って移動するように、当該境界から一定距離（Ｘｒｅｆ）だけ離れた位置に目標経路が設定された設定環境下で用いられる移動ロボットであって、
前記制御部は、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離（ｘ）を算出可能であるとともに、当該距離（ｘ）と前記一定距離（Ｘｒｅｆ）との差分（δｘ）を算出可能であり、さらに、当該差分（δｘ）を０（ゼロ）とするように前記駆動部に対する駆動制御を実行可能であることを特徴とする移動ロボット。
【請求項２】
請求項１に記載の移動ロボットにおいて、
前記制御部は、前記差分（δｘ）を０（ゼロ）とするように前記駆動部に対して実行する駆動制御を、フィードバック制御に基づき実行可能であることを特徴とする移動ロボット。
【請求項３】
移動ロボットの移動速度と進行方向とを変更する駆動部と、
目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、
前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、
を備え、
前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、
前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、
前記移動ロボットが前記境界から一定距離（Ｘｒｅｆ）を保って移動するように、当該境界から一定距離（Ｘｒｅｆ）だけ離れた位置に目標経路を設定した移動ロボットの制御システムにおいて、
前記制御部は、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離（ｘ）を算出可能であるとともに、当該距離（ｘ）と前記一定距離（Ｘｒｅｆ）との差分（δｘ）を算出可能であり、さらに、当該差分（δｘ）を０（ゼロ）とするように前記駆動部に対する駆動制御を実行可能であることを特徴とする移動ロボットの制御システム。
【請求項４】
請求項３に記載の移動ロボットの制御システムにおいて、
前記制御部は、前記差分（δｘ）を０（ゼロ）とするように前記駆動部に対して実行する駆動制御を、フィードバック制御に基づき実行可能であることを特徴とする移動ロボットの制御システム。
【請求項５】
移動ロボットの移動速度と進行方向とを変更する駆動部と、
目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、
前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、
を備え、
前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、
前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、
前記移動ロボットが前記境界から一定距離（Ｘｒｅｆ）を保って移動するように、当該境界から一定距離（Ｘｒｅｆ）だけ離れた位置に目標経路が設定され、
前記検出部により検出された前記被検出体までの距離と方向とを取得する処理と、
前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出する処理と、
算出した進行方向に基づいて前記駆動部を駆動制御する処理と、
を含む処理を実行する移動ロボットの制御方法であって、
前記制御部が、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離（ｘ）を算出する処理と、当該距離（ｘ）と前記一定距離（Ｘｒｅｆ）との差分（δｘ）を算出する処理と、さらに、当該差分（δｘ）を０（ゼロ）とするように前記駆動部に対する駆動制御を実行する処理を行うことを特徴とする移動ロボットの制御方法。
【請求項６】
請求項５に記載の移動ロボットの制御方法において、
前記制御部が、前記差分（δｘ）を０（ゼロ）とするように前記駆動部に対して実行する駆動制御を、フィードバック制御に基づき実行することを特徴とする移動ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボット、移動ロボットの制御システムおよび移動ロボットの制御方法に関するものである。
【背景技術】
【０００２】
従来から、自律移動する移動ロボットを誘導するために、ビーコンなどの発信器が用いられている。例えば、移動ロボットとしての掃除ロボットは、充電器に設けられたビーコンから発せられる信号に基づいて、充電器に向けて移動して充電器から電力の供給を受ける動作を行っている。
【０００３】
このような移動ロボットは、近年その活用範囲を拡大している。例えば、工場内や物流倉庫などで使用される無人搬送車や、施設、ホール、空港などの公共施設内でのサービスロボットは、移動ロボット活用の一例である。例えば、下記特許文献１に記載された技術では、無人搬送車が走行環境に設置された複数の位置決め装置との相対位置を検出して自律走行するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０１８２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この技術は、位置決め装置との相対位置を求めて走行ラインを決定するものであり、無人搬送車の位置が何らかの影響でずれてしまった場合などは、所望の走行ラインとは異なるラインを走行する可能性がある。そのような場合でも所望の走行ラインを走行するためには、所望の走行ラインの位置決め装置に対する相対位置を全て記憶しておく必要があり、メモリ容量の増加と所望の走行ラインの設定に要する工数の増加が問題となる。
【０００６】
本発明は、上述した従来技術に存在する種々の課題に鑑みて成されたものであって、その目的は、移動ロボットを自律走行させる場合において、走行ラインを記憶する大容量のメモリや走行ラインを設定する工数が不要である移動ロボットの制御システムおよび制御方法と、これらに用いられる移動ロボットを提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る移動ロボットは、移動速度と進行方向とを変更する駆動部と、目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、を備え、前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、また、前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、さらに、前記移動ロボットが前記境界から一定距離（Ｘｒｅｆ）を保って移動するように、当該境界から一定距離（Ｘｒｅｆ）だけ離れた位置に目標経路が設定された設定環境下で用いられる移動ロボットであって、前記制御部は、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離（ｘ）を算出可能であるとともに、当該距離（ｘ）と前記一定距離（Ｘｒｅｆ）との差分（δｘ）を算出可能であり、さらに、当該差分（δｘ）を０（ゼロ）とするように前記駆動部に対する駆動制御を実行可能であることを特徴とするものである。
【０００８】
本発明に係る移動ロボットの制御システムは、移動ロボットの移動速度と進行方向とを変更する駆動部と、目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、を備え、前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、前記移動ロボットが前記境界から一定距離（Ｘｒｅｆ）を保って移動するように、当該境界から一定距離（Ｘｒｅｆ）だけ離れた位置に目標経路を設定した移動ロボットの制御システムであって、前記制御部は、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離（ｘ）を算出可能であるとともに、当該距離（ｘ）と前記一定距離（Ｘｒｅｆ）との差分（δｘ）を算出可能であり、さらに、当該差分（δｘ）を０（ゼロ）とするように前記駆動部に対する駆動制御を実行可能であることを特徴とするものである。
【０００９】
本発明に係る移動ロボットの制御方法は、移動ロボットの移動速度と進行方向とを変更する駆動部と、目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、を備え、前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、前記移動ロボットが前記境界から一定距離（Ｘｒｅｆ）を保って移動するように、当該境界から一定距離（Ｘｒｅｆ）だけ離れた位置に目標経路が設定され、前記検出部により検出された前記被検出体までの距離と方向とを取得する処理と、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出する処理と、算出した進行方向に基づいて前記駆動部を駆動制御する処理と、を含む処理を実行する移動ロボットの制御方法であって、前記制御部が、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離（ｘ）を算出する処理と、当該距離（ｘ）と前記一定距離（Ｘｒｅｆ）との差分（δｘ）を算出する処理と、さらに、当該差分（δｘ）を０（ゼロ）とするように前記駆動部に対する駆動制御を実行する処理を行うことを特徴とするものである。
【発明の効果】
【００１０】
本発明によれば、移動ロボットを自律走行させる場合において、走行ラインを記憶する大容量のメモリや走行ラインを設定する工数が不要であり、また、通路内で移動ロボットを所望の経路に早く誘導することのできる移動ロボットの制御システムおよび制御方法と、これらに用いられる移動ロボットを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】第一の実施形態に係る移動ロボットの基本となる移動例を示す図である。
【図２】第一の実施形態に係る移動ロボットの構成例を示すブロック図である。
【図３】第一の実施形態に係る制御部の構成例を示すブロック図である。
【図４】第一の実施形態に係る移動経路記憶部に記憶されているテーブルの一例を示す図である。
【図５】第一の実施形態に係る駆動制御部におけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。
【図６】第一の実施形態に係る移動ロボットの動作説明をするための図である。
【図７】第一の実施形態に係る移動ロボットの動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【図８】第二の実施形態に係る移動ロボットの基本となる移動例を示す図である。
【図９】第二の実施形態に係る移動ロボットの構成例を示すブロック図である。
【図１０】第二の実施形態に係る制御部の構成例を示すブロック図である。
【図１１】第二の実施形態に係る移動経路記憶部に記憶されているテーブルの一例を示す図である。
【図１２】第二の実施形態に係る駆動制御部におけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。
【図１３】第二の実施形態に係る移動ロボットが初期動作を実行する際の動作説明をするための図である。
【図１４】第二の実施形態に係る移動ロボットが初期動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【図１５】第二の実施形態に係る移動ロボットが通常動作を実行する際の動作説明をするための図である。
【図１６】境界上にビーコンを配置できない場合における、第二の実施形態に係る移動ロボットが通常動作を実行する際の動作例を示す図である。
【図１７】第二の実施形態に係る移動ロボットが通常動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【図１８】移動ロボットが移動する通路に交差点が存在する場合のビーコンの配置例と目標経路の状況を示す図である。
【図１９】本発明に係る移動ロボットに適用可能な画像処理装置のシステム構成例を示すブロック図である。
【図２０】本発明に係る移動ロボットに適用可能な画像処理装置が撮像したマーカーの撮像データを２値化処理して得られた２値化画像を示すとともに、この２値化画像を走査してマーカーに設定されたＩＤ情報を得るための走査方法を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための好適な実施形態について、図面を用いて説明する。なお、以下の実施形態は、各請求項に係る発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
［第一の実施形態］
まず、図１〜図７を用いて、本発明に係る移動ロボットの制御システムの基本形態である第一の実施形態を説明する。第一の実施形態は、移動ロボット３０が検出したビーコン１１−１までの距離Ｚと、この距離Ｚに基づき算出したビーコン通過距離ｘに基づき、移動ロボット３０が動作する実施形態である。
【００１４】
図１は、第一の実施形態に係る移動ロボット３０の基本となる移動例を示す図である。移動ロボット３０は、通路を定める境界４０（４０−１，４０−２）に沿って配置される被検出体としてのビーコン１１（１１−１，１１−２）を検出し、検出したビーコン１１の位置に基づいて、境界４０から一定距離Ｘｒｅｆを保ちながら目的地点に向かって移動する。発信器としてのビーコン１１には、それぞれを一意に識別するビーコンＩＤが割り当てられている。ビーコン１１は、例えば、ビーコンＩＤを示す信号を含む赤外線の信号を発信するものであり、その赤外線の信号における周期的な変化により表される。通路を定める境界４０は、例えば壁や間仕切りや白線ラインなどといったものである。
【００１５】
図１に示す移動例では、移動ロボット３０の進行方向に対して左側の境界４０−１から一定距離Ｘｒｅｆを保って移動ロボット３０が移動する。移動ロボット３０は、境界４０−１から一定距離Ｘｒｅｆを保つために、検出したビーコン１１−１までの距離Ｚを取得し、また、この距離Ｚに基づきビーコン通過距離ｘを算出する。その算出結果に基づいて、移動ロボット３０は、一定距離Ｘｒｅｆとビーコン通過距離ｘとの差分であるδｘを算出し、この差分δｘを０（ゼロ）とするように移動する。差分δｘを０（ゼロ）とするための進行動作は、フィードバック制御、例えば、ＰＩＤ制御に基づき決定される。移動ロボット３０は、ビーコン１１−１までの距離Ｚが予め定められた切替閾値より近くなると、目標をビーコン１１−２に切り替えて移動する。移動ロボット３０からの距離が切替閾値より近い範囲を切替範囲という。
【００１６】
次に、図２を参照して第一の実施形態に係る移動ロボット３０の具体的な構成例を説明する。ここで、図２は、第一の実施形態に係る移動ロボット３０の構成例を示すブロック図である。第一の実施形態に係る移動ロボット３０は、駆動部３１と、ビーコン検出部２２と、制御部２７とを備える。
【００１７】
駆動部３１は、駆動輪３２，３３と、モータ３４，３５と、モータ制御部３６とを備える。駆動輪３２は、移動ロボット３０の進行方向に対して左側に備えられる。駆動輪３３は、移動ロボット３０の進行方向に対して右側に備えられる。モータ３４は、モータ制御部３６の制御に応じて、駆動輪３２を回転させる。モータ３５は、モータ制御部３６の制御に応じて、駆動輪３３を回転させる。モータ制御部３６は、制御部２７から入力されるモータ３４，３５それぞれに対する角速度指令値に基づいて、モータ３４，３５に対して電力を供給する。
【００１８】
モータ３４，３５がモータ制御部３６から供給される電力に応じた角速度で回転することにより、移動ロボット３０が前進又は後進する。また、モータ３４，３５の角速度に差を生じさせることにより、移動ロボット３０の進行方向が変更される。例えば、前進の際に左側の駆動輪３２の角速度を右側の駆動輪３３の角速度より大きくすることにより、移動ロボット３０は右旋回しながら移動する。また、駆動輪３２，３３それぞれを逆向きに回転させることにより、移動ロボット３０は位置を変えずに旋回する。なお、移動ロボット３０は、移動ロボット３０の姿勢を安定させるために、駆動輪３２，３３以外の車輪を有していてもよい。
【００１９】
ビーコン検出部２２は、検出部としての赤外線センサ２４，２５と、算出部２６とを備える。赤外線センサ２４は、移動ロボット３０の前面の左側に取り付けられ、移動ロボット３０の前面側に位置するビーコン１１から発信される赤外線の信号を検出する。赤外線センサ２５は、移動ロボット３０の前面の右側に取り付けられ、移動ロボット３０の前面側に位置するビーコン１１から発信される赤外線の信号を検出する。左右２つの赤外線センサ２４，２５は、移動ロボット３０の中心を通る正面方向の直線に対して対称に、移動ロボット３０の筐体に取り付けられる。赤外線センサ２４，２５には、例えば赤外線フィルタを組み合わせた撮像素子が用いられる。赤外線センサ２４，２５により撮像される画像における輝度の変化を検出することにより、ビーコン１１が検出される。
【００２０】
算出部２６は、一方の赤外線センサ２４により撮像された画像における目標のビーコン１１の位置と、他方の赤外線センサ２５により撮像された画像における目標のビーコン１１の位置との差に基づいて、移動ロボット３０からビーコン１１までの距離Ｚを算出する。算出部２６は、赤外線センサ２４，２５により撮像される画像に複数のビーコン１１から発信される信号が含まれる場合、目標とするビーコン１１のビーコンＩＤを検出し、目標とするビーコン１１までの距離Ｚを算出する。ビーコンＩＤの検出は、例えば、時系列に連続する画像においてビーコンＩＤに対応する信号の周期的な変化を検出することにより行われる。算出部２６は、算出した距離ＺとビーコンＩＤとを含むビーコン情報を制御部２７へ出力する。算出される距離Ｚは、赤外線センサ２４と赤外線センサ２５とを結ぶ線分上の中心からの距離である。赤外線センサ２４と赤外線センサ２５とを結ぶ線分が移動ロボット３０の進行方向に対して直交するように、赤外線センサ２４，２５が取り付けられていると、算出部２６における演算負荷を軽減できる。
【００２１】
制御部２７は、ビーコン検出部２２から取得するビーコン情報に基づいて、駆動部３１を制御する。図３は、第一の実施形態に係る制御部２７の構成例を示すブロック図である。第一の実施形態に係る制御部２７は、移動経路記憶部２７ａと、ビーコン選択部２７ｂと、駆動制御部２７ｃとを備える。移動経路記憶部２７ａには、移動ロボット３０の移動経路に沿って配置された複数のビーコン１１に関する属性情報を含むテーブルが予め記憶されている。ビーコン選択部２７ｂは、移動経路記憶部２７ａに記憶されているテーブルに基づいて、目標とするビーコン１１のビーコンＩＤをビーコン検出部２２へ出力する。ビーコン選択部２７ｂは、ビーコン検出部２２から入力されるビーコン情報に基づいて、目標とするビーコン１１を切り替えるか否かを判定する。ビーコン選択部２７ｂは、目標とするビーコン１１を切り替える場合、現在の目標とするビーコン１１の次のビーコン１１をテーブルから選択する。
【００２２】
駆動制御部２７ｃは、ビーコン検出部２２から出力されるビーコン情報に基づいて、移動経路記憶部２７ａに記憶されているテーブルから属性情報および制御情報を読み出す。属性情報は、目標とするビーコン１１に関する情報である。制御情報は、目標とするビーコン１１に紐付けられた制御を示す情報である。ビーコン１１に紐付けられた制御は、例えば進行方向の変更を示すビーコン１１の近傍において旋回する制御や、停止位置を示すビーコン１１の近傍において停止する制御などである。つまり、駆動制御部２７ｃは、ビーコン情報、属性情報および制御情報に基づいて、駆動部３１を駆動制御する。
【００２３】
図４は、第一の実施形態に係る移動経路記憶部２７ａに記憶されているテーブルの一例を示す図である。テーブルは、「ビーコンＩＤ」と、「通路距離」と、「設置側」と、「方向転換」と、「最終ビーコン」との項目の列を備える。各行は、ビーコン１１ごとに存在する属性情報である。テーブルにおける各行は、移動ロボット３０が移動経路に沿って移動する際に通過するビーコン１１の順序で並んでいる。「ビーコンＩＤ」の列には、行に対応するビーコン１１のビーコンＩＤが含まれる。「通路距離」の列には、行に対応するビーコン１１と、移動ロボット３０の移動経路がどれだけ離れた距離であるかを示す距離情報が含まれる。通路距離は、正の値として設定される値であり、対象となるビーコン１１から移動ロボット３０の移動経路までの距離を示す値である。また、この実施形態において通路距離は、ビーコン１１から移動ロボット３０の移動経路における移動方向に対して略直交する方向に位置する目標地点までの距離を示している。
【００２４】
「設置側」の列は、移動ロボット３０が移動経路に沿って移動する場合において、行に対応するビーコン１１が移動ロボット３０の右側又は左側のいずれに配置されているかを示す情報が含まれる。「方向転換」の列は、行に対応するビーコン１１に対して移動ロボット３０が予め定められた距離又は切替閾値まで近づいたときに、移動ロボット３０の進行方向の変更を示す回転情報が含まれる。回転情報が０度である場合、移動ロボット３０の進行方向の変更がないことを示す。回転情報が０度以外である場合、回転情報が示す角度分、移動ロボット３０の進行方向を時計回り又は反時計回りに変更する。「最終ビーコン」の列は、行に対応するビーコン１１が、移動経路における目標地点の近傍にあるビーコン１１であるか否かを示す情報が含まれる。図４に示すテーブルでは、例えばビーコンＩＤ「Ｍ」を有するビーコン１１が目標地点近傍のビーコンであることを示す。
【００２５】
図５は、第一の実施形態に係る駆動制御部２７ｃにおけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。駆動制御部２７ｃは、通過位置算出部２７ｃ１と、指令値算出部２７ｃ３とを備える。通過位置算出部２７ｃ１には、ビーコン情報に含まれるビーコン１１までの距離Ｚが入力される。通過位置算出部２７ｃ１は、距離Ｚに基づいて、現在の移動ロボット３０の進行方向で移動してビーコン１１に最接近したときのビーコン１１までの距離ｘを算出する。移動ロボット３０がビーコン１１に最接近したときの位置は、移動ロボット３０の位置から進行方向に伸ばした移動直線に対して直交する直線であって、ビーコン１１の位置を通過する直線と、移動直線との交点である。距離ｘは、（Ｚ・ｓｉｎθ）として得られる。距離ｘは、ビーコン通過距離ともいう。
【００２６】
指令値算出部２７ｃ３には、並進速度指令値Ｖｒｅｆと、角速度指令値ωｒｅｆと、角速度の測定値ωｌ’，ωｒ’と、差分δｘとが入力される。並進速度指令値Ｖｒｅｆは、移動ロボット３０の並進速度に対する指令値（目標値）である。角速度指令値ωｒｅｆは、進行方向を基準として時計回り方向又は反時計回り方向へ進行方向を変更する際の角速度である。角速度指令値ωｒｅｆは、時計回り方向の変化量を正の値として定めてもよいし、反時計回り方向の変化量を正の値として定めてもよい。角速度の測定値ωｌ’，ωｒ’は、モータ３４，３５それぞれに設けられているエンコーダにより測定された角速度である。指令値算出部２７ｃ３は、制御部２７が差分δｘに基づくＰＩＤ制御を実行することで駆動部３１へ出力するための角速度指令値ωｌ，ωｒを算出し、駆動部３１を動作制御することが可能となっている。
【００２７】
次に、図６を用いて、第一の実施形態に係る移動ロボット３０の駆動制御方法について説明する。ここで、図６は、第一の実施形態に係る移動ロボット３０の動作説明をするための図である。
【００２８】
第一の実施形態では、移動ロボット３０のビーコン検出部２２が境界４０−１上に配置されたビーコン１１−１を検出することにより、移動ロボット３０からビーコン１１までの距離Ｚが得られる。上述したように、この距離Ｚは、算出部２６によって算出される値である。距離Ｚの算出値を送信された制御部２７では、通過位置算出部２７ｃ１が距離Ｚからビーコン通過距離ｘを算出する。なお、ビーコン通過距離ｘは、境界４０−１に沿って配置されたビーコン１１−１と移動ロボット３０の現在位置との移動経路に対して直交する方向の距離である。移動ロボット３０は、移動経路に沿って配置されたビーコン１１−１から一定距離Ｘｒｅｆ離れた通過点Ｐｐａｓｓを把握することで、破線で示された目標経路Ｌを把握することができる。通過点Ｐｐａｓｓは、ビーコン１１の属性情報のうち「設置側」を示す情報に基づいて定まる。なお、図６は、ビーコン１１（１１−１，１１−２）が移動経路の左側に設定されている場合を示している。
【００２９】
また、図６に示す例において、移動ロボット３０が目標地点へ向けて目標経路Ｌに沿った移動を開始しようとするときに、通過位置算出部２７ｃ１が距離Ｚから算出したビーコン通過距離ｘと、目標経路Ｌを規定するために予め設定されたビーコン１１からの距離である一定距離Ｘｒｅｆに基づいて、制御部２７は、当該ビーコン通過距離ｘと一定距離Ｘｒｅｆとの差である差分δｘを算出する。算出された差分δｘの情報は、指令値算出部２７ｃ３に伝達される。指令値算出部２７ｃ３は、受け取った差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行する。またこのとき、指令値算出部２７ｃ３は、ＰＩＤ制御に基づいて差分δｘを０（ゼロ）とするように角速度指令値ωｌ，ωｒを算出することで、駆動部３１に対する駆動制御を実行する。
【００３０】
なお、指令値算出部２７ｃ３が算出する動作指令情報は、例えば、フィードバック制御に含まれる制御方法のひとつであるＰＩＤ制御によるものである。ここで、ＰＩＤ制御とは、比例動作（Ｐ（Proportional）動作）、積分動作（Ｉ（Integral）動作）、微分動作（Ｄ（Differential）動作）を組み合わせた制御方法いい、入力値の制御を出力値と目標値との偏差、その積分、および微分の３つの要素によって行う制御方法のことである。このようなＰＩＤ制御によって制御部２７（指令値算出部２７ｃ３）は差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行するので、移動ロボット３０は、移動動作を行う際に常に目標経路Ｌに向けてより速く接近するように動作することとなる。また、ＰＩＤ制御の微分動作（Ｄ（Differential）動作）の作用によって、移動目標である目標経路Ｌに対して移動ロボット３０が行き過ぎたり（オーバーシュート）、振動したり（ハンチング）する現象を起こすことが好適に防止できるので、スムーズな曲率を描いた経路をたどって移動ロボット３０を目標経路Ｌに早期に移動させることが可能となる。
【００３１】
以上説明した駆動制御方法によって移動ロボット３０が移動経路に沿って移動していくと、最終的には、目標位置に近いビーコンＩＤ「Ｍ」を有するビーコン１１の近傍に移動ロボット３０が近づいていき、停止制御が実行されることとなる。
【００３２】
次に、図７を参照図面に加えて、第一の実施形態に係る移動ロボット３０の制御システムにおける具体的な処理内容を説明する。ここで、図７は、第一の実施形態に係る移動ロボット３０の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【００３３】
移動ロボット３０の移動が開始されると、まず初めに、算出部２６は、ビーコン１１に設定されたＩＤ情報を取得し、制御部２７に送信する。第一の実施形態におけるＩＤ情報は、各ビーコン１１を一意に識別するためのビーコンＩＤである。ビーコンＩＤを受け取った制御部２７では、初期状態で設定されているビーコンＩＤが検出できたか否かを判定する（ステップＳ１０１）。初期状態において、ビーコン選択部２７ｂは、テーブルの最初の行に記憶されているビーコンＩＤを、目標とするビーコン１１のビーコンＩＤに選択する。
【００３４】
ビーコン１１を検出できない場合（ステップＳ１０１のＮＯ）、制御部２７は、ビーコン１１を検出できなかったことを示すエラー信号を出力する。駆動制御部２７ｃは、エラー信号に応じて、駆動部３１に駆動輪３２，３３を停止させる（ステップＳ１２１）。ビーコン選択部２７ｂは、エラー信号に応じて、ビーコン１１が検出できないことを示すエラー情報を外部へ出力し（ステップＳ１２２）、移動制御処理を終了させる。なお、エラー情報の出力は、移動ロボット３０に備えられる出力装置、例えばスピーカやディスプレイを用いて行われる。
【００３５】
ステップＳ１０１において、ビーコン１１を検出できた場合（ステップＳ１０１のＹＥＳ）、ビーコン選択部２７ｂおよび駆動制御部２７ｃは、ビーコン検出部２２の算出部２６からビーコン情報を取得することとなる（ステップＳ１０２）。ビーコン選択部２７ｂは、ビーコン情報により示されるビーコン１１が最終ビーコンであるか否かをテーブルに基づいて判定する（ステップＳ１０３）。
【００３６】
ステップＳ１０３において、ビーコン１１が最終ビーコンである場合（ステップＳ１０３のＹＥＳ）、駆動制御部２７ｃは、ビーコン情報により示されるビーコン１１までの距離Ｚが切替範囲内であるか否かを判定する（ステップＳ１３１）。ビーコン１１までの距離Ｚが切替範囲内である場合（ステップＳ１３１のＹＥＳ）、駆動制御部２７ｃは、駆動部３１に駆動輪３２，３３を停止させ（ステップＳ１３２）、移動制御処理を終了させる。
【００３７】
ステップＳ１３１において、ビーコン１１までの距離Ｚが切替範囲内でない場合（ステップＳ１３１のＮＯ）、駆動制御部２７ｃは、処理をステップＳ１０８へ進める。
【００３８】
ステップＳ１０３において、ビーコン１１が最終ビーコンでない場合（ステップＳ１０３のＮＯ）、駆動制御部２７ｃは、ビーコン情報により示されるビーコン１１までの距離Ｚが切替範囲内であるか否かを判定する（ステップＳ１０４）。ビーコン１１までの距離Ｚが切替範囲内でない場合（ステップＳ１０４のＮＯ）、駆動制御部２７ｃは、処理をステップＳ１０８へ進める。
【００３９】
ステップＳ１０４において、ビーコン１１までの距離Ｚが切替範囲内である場合（ステップＳ１０４のＹＥＳ）、駆動制御部２７ｃは、ビーコン１１の属性情報に方向転換の指示があるか否かをテーブルに基づいて判定する（ステップＳ１０５）。方向転換の指示がない場合（ステップＳ１０５のＮＯ）、駆動制御部２７ｃは、処理をステップＳ１０７へ進める。
【００４０】
方向転換の指示がある場合（ステップＳ１０５のＹＥＳ）、駆動制御部２７ｃは、ビーコン１１の回転情報をテーブルから取得し、移動ロボット３０の進行方向を回転情報の示す角度変更をする制御を、駆動部３１に対して行う（ステップＳ１０６）。ビーコン選択部２７ｂは、現在目標としているビーコン１１の次に目標とするビーコン１１のビーコンＩＤをテーブルから取得する。ビーコン選択部２７ｂは、取得したビーコンＩＤのビーコン１１をビーコン検出部２２へ出力することにより、取得したビーコンＩＤのビーコン１１を新たな目標に選択し（ステップＳ１０７）、処理をステップＳ１０１へ戻す。
【００４１】
ステップＳ１０８において、距離Ｚからなるビーコン情報を取得した制御部２７では、通過位置算出部２７ｃ１が距離Ｚからビーコン通過距離ｘを算出する（ステップＳ１０８）。なお、距離ｘは、境界４０−１に沿って配置されたビーコン１１−１と移動ロボット３０の現在位置との移動経路に対して直交する方向の距離である。また、制御部２７では、算出したビーコン通過距離ｘと、目標経路Ｌを規定するために予め設定されたビーコン１１−１からの距離である一定距離Ｘｒｅｆに基づいて、当該距離ｘと一定距離Ｘｒｅｆとの差である差分δｘを算出する（ステップＳ１０９）。
【００４２】
続いて、ステップＳ１０９で算出された差分δｘの情報は、制御部２７の通過位置算出部２７ｃ１から指令値算出部２７ｃ３に伝達される。指令値算出部２７ｃ３は、受け取った差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行する（ステップＳ１１０）。またこのとき、指令値算出部２７ｃ３は、ＰＩＤ制御に基づいて差分δｘを０（ゼロ）とするように角速度指令値ωｌ，ωｒを算出することで、駆動部３１に対する駆動制御が実行される。
【００４３】
制御部２７の指令値算出部２７ｃ３が差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行した後、制御部２７は、差分δｘが０（ゼロ）になったか否かを確認し続ける（ステップＳ１１１）。そして、差分δｘが０（ゼロ）になっていない場合（ステップＳ１１１のＮＯ）、制御部２７は、ＰＩＤ制御に基づく駆動部３１に対する駆動制御の実行を継続する（ステップＳ１１２）。
【００４４】
制御部２７によるＰＩＤ制御に基づく駆動部３１に対する駆動制御の実行が継続された後、差分δｘが０（ゼロ）になった場合（ステップＳ１１１のＹＥＳ）、制御部２７は、処理をステップＳ１０１へ戻す。そして、移動ロボット３０が最終の目標地点に到達して駆動部３１に駆動輪３２，３３を停止させるステップＳ１３２の処理を実行するまで、図７で示すフローチャートに基づく移動制御処理が実行される。
【００４５】
以上、図７を用いて説明した移動制御処理によれば、第一の実施形態に係る移動ロボット３０は、ＰＩＤ制御の作用によって通路内で所望の目標経路Ｌに早く誘導されることとなる（図６参照）。かかる動作制御方法は、例えば、工場内などで、移動ロボット３０と人が通路を共有する場合に、移動ロボット３０が通路を早く空けることができるので、人の通行を移動ロボット３０が阻害することがなく、通路内で人が移動ロボット３０の通過を待たなければならないといった状況が発生することを好適に防止できるという効果がある。
【００４６】
また、上述した第一の実施形態に係る移動ロボット３０の制御システムによれば、広い設置場所を必要としない比較的コンパクトなビーコン１１を採用した場合であっても、その識別および距離計測が精度よく可能である。さらに、上述した第一の実施形態に係る移動ロボット３０の制御システムによれば、安価なシステム構成とすることができるので、汎用性が高い移動ロボットの制御システムを提供することが可能となる。
【００４７】
以上、図１〜図７を用いて、本発明に係る移動ロボットの制御システムの基本形態である第一の実施形態を説明した。上述した第一の実施形態は、移動ロボット３０が検出したビーコン１１−１までの距離Ｚと、この距離Ｚに基づき算出したビーコン通過距離ｘに基づき、移動ロボット３０が動作する実施形態であった。次に、上述した第一の実施形態の動作制御方法を移動ロボット３０の初期動作に利用しつつ、別の動作制御方法と組み合わせた動作制御方法である第二の実施形態について、図８〜図１７を用いて説明することとする。なお、第二の実施形態の説明において、上述した第一の実施形態と同一又は類似する部材等については、同一符号を付して説明を省略する場合がある。
【００４８】
［第二の実施形態］
図８は、第二の実施形態に係る移動ロボット３０の基本となる移動例を示す図である。移動ロボット３０は、通路を定める境界４０（４０−１，４０−２）に沿って配置される被検出体としてのビーコン１１（１１−１，１１−２）を検出し、検出したビーコン１１の位置に基づいて、境界４０から一定距離Ｘｒｅｆを保ちながら目的地点に向かって移動する。発信器としてのビーコン１１には、それぞれを一意に識別するビーコンＩＤが割り当てられている。ビーコン１１は、例えば、ビーコンＩＤを示す信号を含む赤外線の信号を発信するものであり、その赤外線の信号における周期的な変化により表される。通路を定める境界４０は、例えば壁や間仕切りや白線ラインなどといったものである。
【００４９】
図８に示す移動例では、移動ロボット３０の進行方向に対して左側の境界４０−１から一定距離Ｘｒｅｆを保って移動ロボット３０が移動する。移動ロボット３０は、境界４０−１から一定距離Ｘｒｅｆを保つために、検出したビーコン１１−１までの距離Ｚと方向θとを取得し、距離Ｚと方向θとが予め定められた条件を満たす進行方向を算出する。移動ロボット３０は、算出した進行方向に移動する。方向θは、移動ロボット３０の進行方向と、検出されたビーコン１１−１の方向とが成す角である。予め定められた条件を満たす進行方向は、初期動作についてはフィードバック制御、例えば、ＰＩＤ制御に基づき決定される進行方向であり、初期動作を終えて通常動作に移行した状態では、方向θがａｒｃｓｉｎ（Ｘｒｅｆ／Ｚ）となる進行方向である。移動ロボット３０は、ビーコン１１−１までの距離Ｚが予め定められた切替閾値より近くなると、目標をビーコン１１−２に切り替えて移動する。移動ロボット３０からの距離が切替閾値より近い範囲を切替範囲という。
【００５０】
次に、図９を参照して第二の実施形態に係る移動ロボット３０の具体的な構成例を説明する。ここで、図９は、第二の実施形態に係る移動ロボット３０の構成例を示すブロック図である。第二の実施形態に係る移動ロボット３０は、駆動部３１と、ビーコン検出部２２と、制御部２７とを備える。
【００５１】
駆動部３１は、駆動輪３２，３３と、モータ３４，３５と、モータ制御部３６とを備える。駆動輪３２は、移動ロボット３０の進行方向に対して左側に備えられる。駆動輪３３は、移動ロボット３０の進行方向に対して右側に備えられる。モータ３４は、モータ制御部３６の制御に応じて、駆動輪３２を回転させる。モータ３５は、モータ制御部３６の制御に応じて、駆動輪３３を回転させる。モータ制御部３６は、制御部２７から入力されるモータ３４，３５それぞれに対する角速度指令値に基づいて、モータ３４，３５に対して電力を供給する。
【００５２】
モータ３４，３５がモータ制御部３６から供給される電力に応じた角速度で回転することにより、移動ロボット３０が前進又は後進する。また、モータ３４，３５の角速度に差を生じさせることにより、移動ロボット３０の進行方向が変更される。例えば、前進の際に左側の駆動輪３２の角速度を右側の駆動輪３３の角速度より大きくすることにより、移動ロボット３０は右旋回しながら移動する。また、駆動輪３２，３３それぞれを逆向きに回転させることにより、移動ロボット３０は位置を変えずに旋回する。なお、移動ロボット３０は、移動ロボット３０の姿勢を安定させるために、駆動輪３２，３３以外の車輪を有していてもよい。
【００５３】
ビーコン検出部２２は、検出部としての赤外線センサ２４，２５と、算出部２６とを備える。赤外線センサ２４は、移動ロボット３０の前面の左側に取り付けられ、移動ロボット３０の前面側に位置するビーコン１１から発信される赤外線の信号を検出する。赤外線センサ２５は、移動ロボット３０の前面の右側に取り付けられ、移動ロボット３０の前面側に位置するビーコン１１から発信される赤外線の信号を検出する。左右２つの赤外線センサ２４，２５は、移動ロボット３０の中心を通る正面方向の直線に対して対称に、移動ロボット３０の筐体に取り付けられる。赤外線センサ２４，２５には、例えば赤外線フィルタを組み合わせた撮像素子が用いられる。赤外線センサ２４，２５により撮像される画像における輝度の変化を検出することにより、ビーコン１１が検出される。
【００５４】
算出部２６は、一方の赤外線センサ２４により撮像された画像における目標のビーコン１１の位置と、他方の赤外線センサ２５により撮像された画像における目標のビーコン１１の位置との差に基づいて、移動ロボット３０からビーコン１１までの距離Ｚと方向θとを算出する。算出部２６は、赤外線センサ２４，２５により撮像される画像に複数のビーコン１１から発信される信号が含まれる場合、目標とするビーコン１１のビーコンＩＤを検出し、目標とするビーコン１１までの距離Ｚと方向θとを算出する。ビーコンＩＤの検出は、例えば、時系列に連続する画像においてビーコンＩＤに対応する信号の周期的な変化を検出することにより行われる。算出部２６は、算出した距離Ｚおよび方向θとビーコンＩＤとを含むビーコン情報を制御部２７へ出力する。算出される距離Ｚは、赤外線センサ２４と赤外線センサ２５とを結ぶ線分上の中心からの距離である。赤外線センサ２４と赤外線センサ２５とを結ぶ線分が移動ロボット３０の進行方向に対して直交するように、赤外線センサ２４，２５が取り付けられていると、算出部２６における演算負荷を軽減できる。
【００５５】
制御部２７は、ビーコン検出部２２から取得するビーコン情報に基づいて、駆動部３１を制御する。図１０は、第二の実施形態に係る制御部２７の構成例を示すブロック図である。第二の実施形態に係る制御部２７は、移動経路記憶部２７ａと、ビーコン選択部２７ｂと、駆動制御部２７ｃとを備える。移動経路記憶部２７ａには、移動ロボット３０の移動経路に沿って配置された複数のビーコン１１に関する属性情報を含むテーブルが予め記憶されている。ビーコン選択部２７ｂは、移動経路記憶部２７ａに記憶されているテーブルに基づいて、目標とするビーコン１１のビーコンＩＤをビーコン検出部２２へ出力する。ビーコン選択部２７ｂは、ビーコン検出部２２から入力されるビーコン情報に基づいて、目標とするビーコン１１を切り替えるか否かを判定する。ビーコン選択部２７ｂは、目標とするビーコン１１を切り替える場合、現在の目標とするビーコン１１の次のビーコン１１をテーブルから選択する。
【００５６】
駆動制御部２７ｃは、ビーコン検出部２２から出力されるビーコン情報に基づいて、移動経路記憶部２７ａに記憶されているテーブルから属性情報および制御情報を読み出す。属性情報は、目標とするビーコン１１に関する情報である。制御情報は、目標とするビーコン１１に紐付けられた制御を示す情報である。ビーコン１１に紐付けられた制御は、例えば進行方向の変更を示すビーコン１１の近傍において旋回する制御や、停止位置を示すビーコン１１の近傍において停止する制御などである。つまり、駆動制御部２７ｃは、ビーコン情報、属性情報および制御情報に基づいて、駆動部３１を駆動制御する。
【００５７】
図１１は、第二の実施形態に係る移動経路記憶部２７ａに記憶されているテーブルの一例を示す図である。テーブルは、「ビーコンＩＤ」と、「通路距離」と、「設置側」と、「方向転換」と、「最終ビーコン」との項目の列を備える。各行は、ビーコン１１ごとに存在する属性情報である。テーブルにおける各行は、移動ロボット３０が移動経路に沿って移動する際に通過するビーコン１１の順序で並んでいる。「ビーコンＩＤ」の列には、行に対応するビーコン１１のビーコンＩＤが含まれる。「通路距離」の列には、行に対応するビーコン１１と、移動ロボット３０の移動経路がどれだけ離れた距離であるかを示す距離情報が含まれる。通路距離は、正の値として設定される値であり、対象となるビーコン１１から移動ロボット３０の移動経路までの距離を示す値である。また、この実施形態において通路距離は、ビーコン１１から移動ロボット３０の移動経路における移動方向に対して略直交する方向に位置する目標地点までの距離を示している。
【００５８】
「設置側」の列は、移動ロボット３０が移動経路に沿って移動する場合において、行に対応するビーコン１１が移動ロボット３０の右側又は左側のいずれに配置されているかを示す情報が含まれる。「方向転換」の列は、行に対応するビーコン１１に対して移動ロボット３０が予め定められた距離又は切替閾値まで近づいたときに、移動ロボット３０の進行方向の変更を示す回転情報が含まれる。回転情報が０度である場合、移動ロボット３０の進行方向の変更がないことを示す。回転情報が０度以外である場合、回転情報が示す角度分、移動ロボット３０の進行方向を時計回り又は反時計回りに変更する。「最終ビーコン」の列は、行に対応するビーコン１１が、移動経路における目標地点の近傍にあるビーコン１１であるか否かを示す情報が含まれる。図１１に示すテーブルでは、例えばビーコンＩＤ「Ｍ」を有するビーコン１１が目標地点近傍のビーコンであることを示す。
【００５９】
図１２は、第二の実施形態に係る駆動制御部２７ｃにおけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。駆動制御部２７ｃは、通過位置算出部２７ｃ１と、補正角算出部２７ｃ２と、指令値算出部２７ｃ３とを備える。通過位置算出部２７ｃ１には、ビーコン情報に含まれるビーコン１１までの距離Ｚおよび方向θが入力される。通過位置算出部２７ｃ１は、距離Ｚおよび方向θに基づいて、現在の移動ロボット３０の進行方向で移動してビーコン１１に最接近したときのビーコン１１までの距離ｘと、ビーコン１１に最接近するまでの移動距離ｙとを算出する。移動ロボット３０がビーコン１１に最接近したときの位置は、移動ロボット３０の位置から進行方向に伸ばした移動直線に対して直交する直線であって、ビーコン１１の位置を通過する直線と、移動直線との交点である。距離ｘは、（Ｚ・ｓｉｎθ）として得られる。移動距離ｙは、（Ｚ・ｃｏｓθ）として得られる。距離ｘは、ビーコン通過距離ともいう。また、移動距離ｙは、ビーコン横までの距離ともいう。
【００６０】
補正角算出部２７ｃ２には、通路の境界４０から移動経路までの一定距離Ｘｒｅｆから距離ｘを減算して得られる差分ΔＸと、移動距離ｙとが入力される。補正角算出部２７ｃ２は、差分ΔＸと移動距離ｙとに基づいて、移動ロボット３０の進行方向に対する補正角Δθを算出する。具体的には、補正角算出部２７ｃ２は、ａｒｃｔａｎ（ΔＸ／ｙ）で得られる値を補正角Δθとする。
【００６１】
指令値算出部２７ｃ３には、並進速度指令値Ｖｒｅｆと、角速度指令値ωｒｅｆと、角速度の測定値ωｌ’，ωｒ’と、補正角Δθと、差分δｘとが入力される。並進速度指令値Ｖｒｅｆは、移動ロボット３０の並進速度に対する指令値（目標値）である。角速度指令値ωｒｅｆは、進行方向を基準として時計回り方向又は反時計回り方向へ進行方向を変更する際の角速度である。角速度指令値ωｒｅｆは、時計回り方向の変化量を正の値として定めてもよいし、反時計回り方向の変化量を正の値として定めてもよい。角速度の測定値ωｌ’，ωｒ’は、モータ３４，３５それぞれに設けられているエンコーダにより測定された角速度である。指令値算出部２７ｃ３は、並進速度指令値Ｖｒｅｆと角速度指令値ωｒｅｆと角速度の測定値ωｌ’，ωｒ’と補正角Δθとに基づいて、移動ロボット３０を並進速度指令値Ｖｒｅｆおよび角速度指令値ωｒｅｆで移動させつつ、進行方向を補正角Δθ変更させる角速度指令値ωｌ，ωｒを算出する。指令値算出部２７ｃ３は、算出した角速度指令値ωｌ，ωｒを駆動部３１へ出力する。
【００６２】
また、指令値算出部２７ｃ３は、制御部２７が差分δｘに基づくＰＩＤ制御を実行することで駆動部３１へ出力するための角速度指令値ωｌ，ωｒを算出し、駆動部３１を動作制御することが可能となっている。
【００６３】
さて、第二の実施形態では、移動ロボット３０が目標地点へ向けて目標経路Ｌに沿った移動を開始しようとする初期動作のときと、初期動作を終えて目標経路Ｌに沿った移動を継続する通常動作のときとで、異なる駆動制御方法が実行されることとなる。そこで、図１３と図１５を用いて、第二の実施形態に係る移動ロボット３０の駆動制御方法について説明することとする。
【００６４】
まず、図１３は、第二の実施形態に係る移動ロボット３０が初期動作を実行する際の動作説明をするための図である。ビーコン検出部２２が境界４０−１上に配置されたビーコン１１−１を検出することにより、移動ロボット３０からビーコン１１までの距離Ｚと、移動ロボット３０の進行方向を基準としてビーコン１１−１が位置する方向θとが得られる。上述したように、これら距離Ｚと方向θは、算出部２６によって算出される値である。これら距離Ｚと方向θからなる算出値を送信された制御部２７では、通過位置算出部２７ｃ１が距離Ｚおよび方向θから距離ｘおよび移動距離ｙを算出する。なお、距離ｘは、境界４０−１に沿って配置されたビーコン１１−１と移動ロボット３０の現在位置（スタート位置）との移動経路に対して直交する方向の距離である。移動ロボット３０は、移動経路に沿って配置されたビーコン１１−１から一定距離Ｘｒｅｆ離れた通過点Ｐｐａｓｓを把握することで、破線で示された目標経路Ｌを把握することができる。通過点Ｐｐａｓｓは、ビーコン１１の属性情報のうち「設置側」を示す情報に基づいて定まる。なお、図１３は、ビーコン１１（１１−１，１１−２）が移動経路の左側に設定されている場合を示している。
【００６５】
図１３に示す例において、移動ロボット３０が目標地点へ向けて目標経路Ｌに沿った移動を開始しようとするときに、通過位置算出部２７ｃ１が距離Ｚおよび方向θから算出した距離ｘと、目標経路Ｌを規定するために予め設定されたビーコン１１からの距離である一定距離Ｘｒｅｆに基づいて、制御部２７は、当該距離ｘと一定距離Ｘｒｅｆとの差である差分δｘを算出する。算出された差分δｘの情報は、補正角算出部２７ｃ２を経由して指令値算出部２７ｃ３に伝達される。このとき、補正角算出部２７ｃ２は稼働せずに、差分δｘの情報を受け渡すだけである。指令値算出部２７ｃ３は、受け取った差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行する。またこのとき、指令値算出部２７ｃ３は、ＰＩＤ制御に基づいて差分δｘを０（ゼロ）とするように角速度指令値ωｌ，ωｒを算出することで、駆動部３１に対する駆動制御を実行する。
【００６６】
なお、指令値算出部２７ｃ３が算出する動作指令情報は、例えば、フィードバック制御に含まれる制御方法のひとつであるＰＩＤ制御によるものである。ここで、ＰＩＤ制御とは、比例動作（Ｐ（Proportional）動作）、積分動作（Ｉ（Integral）動作）、微分動作（Ｄ（Differential）動作）を組み合わせた制御方法いい、入力値の制御を出力値と目標値との偏差、その積分、および微分の３つの要素によって行う制御方法のことである。このようなＰＩＤ制御によって制御部２７（指令値算出部２７ｃ３）は差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行するので、移動ロボット３０は初期動作において目標経路Ｌに向けてより速く接近するように動作することとなる。また、ＰＩＤ制御の微分動作（Ｄ（Differential）動作）の作用によって、移動目標である目標経路Ｌに対して移動ロボット３０が行き過ぎたり（オーバーシュート）、振動したり（ハンチング）する現象を起こすことが好適に防止できるので、スムーズな曲率を描いた経路をたどって移動ロボット３０を目標経路Ｌに早期に移動させることが可能となる。
【００６７】
一方、図１５は、第二の実施形態に係る移動ロボット３０が通常動作を実行する際の動作説明をするための図である。なお、図１５では、第二の実施形態に係る駆動制御部２７ｃにおいて算出される補正角Δθが示されている。ビーコン検出部２２が境界４０−１上に配置されたビーコン１１を検出することにより、移動ロボット３０からビーコン１１までの距離Ｚと、移動ロボット３０の進行方向を基準としてビーコン１１が位置する方向θとが得られる。通過位置算出部２７ｃ１が距離Ｚおよび方向θから距離ｘおよび移動距離ｙを算出する。移動ロボット３０は、移動経路に沿って配置されたビーコン１１から一定距離Ｘｒｅｆ離れた通過点Ｐｐａｓｓを通過するために、進行方向を変更する必要がある。通過点Ｐｐａｓｓは、ビーコン１１の属性情報のうち「設置側」を示す情報に基づいて定まる。なお、図１５は、ビーコン１１が移動経路の左側に設定されている場合を示している。
【００６８】
図１５に示す例において、現在の進行方向を維持したまま移動ロボット３０が移動すると、移動ロボット３０は、通過点Ｐｐａｓｓより差分ΔＸ離れた位置を通過する。そこで、補正角算出部２７ｃ２が、差分ΔＸと移動距離ｙとに基づいて、進行方向に対する補正角Δθを算出する。指令値算出部２７ｃ３は、移動ロボット３０を並進速度指令値Ｖｒｅｆおよび角速度指令値ωｒｅｆで移動させつつ、進行方向を反時計回りに補正角Δθ分変更させるための角速度指令値ωｌ，ωｒを算出して駆動部３１を制御する。このように、駆動制御部２７ｃが駆動部３１を制御することにより、通路の境界４０−１から一定距離Ｘｒｅｆを隔てた位置に定められた目標経路Ｌ上を移動ロボット３０が移動することができる。
【００６９】
なお、図１５で示した例では、ビーコン１１が境界４０−１上に配置される場合を説明した。しかし、境界４０上にビーコン１１を配置できない場合には、ビーコン１１が配置された位置と境界４０との差分が通路距離（Ｄ１，Ｄ２，・・・，Ｄｍ，・・・，ＤＭ）としてテーブルに記憶される。このような状態の一例を図１６に示す。ここで、図１６は、境界４０（４０−１）上にビーコン１１（１１−ｍ）を配置できない場合における、第二の実施形態に係る移動ロボット３０が通常動作を実行する際の動作例を示す図である。この場合、補正角算出部２７ｃ２は、補正角Δθを算出する際に、通路距離Ｄｍを用いて一定距離Ｘｒｅｆ又は差分ΔＸのいずれかを補正する。
【００７０】
以上説明した駆動制御方法によって移動ロボット３０が移動経路に沿って移動していくと、最終的には、目標位置に近いビーコンＩＤ「Ｍ」を有するビーコン１１の近傍に移動ロボット３０が近づいていき、停止制御が実行されることとなる。
【００７１】
次に、図１４および図１７を参照図面に加えて、第二の実施形態に係る移動ロボット３０の制御システムにおける具体的な処理内容を説明する。ここで、図１４は、第二の実施形態に係る移動ロボット３０が初期動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。また、図１７は、第二の実施形態に係る移動ロボット３０が通常動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【００７２】
まず、図１４に示される第二の実施形態に係る移動ロボット３０の初期動作において実行される初期動作工程（Ｐｒｏｃｅｓｓ  α）では、算出部２６が、ビーコン１１−１に設定されたＩＤ情報を取得して、移動ロボット３０からビーコン１１−１までの距離Ｚと、移動ロボット３０の進行方向を基準としてビーコン１１−１が位置する方向θとを算出し、これら距離Ｚと方向θを示す情報を制御部２７に送信する。第二の実施形態におけるＩＤ情報は、各ビーコン１１を一意に識別するためのビーコンＩＤである。ビーコンＩＤを受け取った制御部２７では、初期状態で設定されているビーコンＩＤが検出できたか否かを判定する（ステップＳ２０１）。初期状態において、ビーコン選択部２７ｂは、テーブルの最初の行に記憶されているビーコンＩＤを、目標とするビーコン１１−１のビーコンＩＤとして選択する。
【００７３】
ビーコン１１−１を検出できない場合（ステップＳ２０１のＮＯ）、制御部２７は、ビーコン１１−１を検出できなかったことを示すエラー信号を出力する。駆動制御部２７ｃは、エラー信号に応じて、駆動部３１に駆動輪３２，３３を停止させる（ステップＳ２１１）。ビーコン選択部２７ｂは、エラー信号に応じて、ビーコン１１−１が検出できないことを示すエラー情報を外部へ出力し（ステップＳ２１２）、移動制御処理を終了させる。なお、エラー情報の出力は、移動ロボット３０に備えられる出力装置、例えばスピーカやディスプレイを用いて行われる。
【００７４】
ステップＳ２０１において、ビーコン１１−１を検出できた場合（ステップＳ２０１のＹＥＳ）、ビーコン選択部２７ｂおよび駆動制御部２７ｃは、ビーコン検出部２２の算出部２６からビーコン情報を取得することとなる（ステップＳ２０２）。このビーコン情報は、移動ロボット３０からビーコン１１−１までの距離Ｚと、移動ロボット３０の進行方向を基準としてビーコン１１−１が位置する方向θとを示す情報である。
【００７５】
距離Ｚと方向θからなるビーコン情報を取得した制御部２７では、通過位置算出部２７ｃ１が距離Ｚおよび方向θから距離ｘを算出する（ステップＳ２０３）。なお、距離ｘは、境界４０−１に沿って配置されたビーコン１１−１と移動ロボット３０の現在位置（スタート位置）との移動経路に対して直交する方向の距離である。また、制御部２７では、算出した距離ｘと、目標経路Ｌを規定するために予め設定されたビーコン１１−１からの距離である一定距離Ｘｒｅｆに基づいて、当該距離ｘと一定距離Ｘｒｅｆとの差である差分δｘを算出する（ステップＳ２０４）。
【００７６】
続いて、ステップＳ２０４で算出された差分δｘの情報は、制御部２７の通過位置算出部２７ｃ１から補正角算出部２７ｃ２を経由して指令値算出部２７ｃ３に伝達される。このとき、補正角算出部２７ｃ２は稼働せずに、差分δｘの情報を受け渡すだけである。指令値算出部２７ｃ３は、受け取った差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行する（ステップＳ２０５）。またこのとき、指令値算出部２７ｃ３は、ＰＩＤ制御に基づいて差分δｘを０（ゼロ）とするように角速度指令値ωｌ，ωｒを算出することで、駆動部３１に対する駆動制御が実行される。
【００７７】
制御部２７の指令値算出部２７ｃ３が差分δｘを０（ゼロ）とするように駆動部３１に対する駆動制御を実行した後、制御部２７は、差分δｘが０（ゼロ）になったか否かを確認し続ける（ステップＳ２０６）。そして、差分δｘが０（ゼロ）になっていない場合（ステップＳ２０６のＮＯ）、制御部２７は、ＰＩＤ制御に基づく駆動部３１に対する駆動制御の実行を継続する（ステップＳ２０７）。
【００７８】
制御部２７によるＰＩＤ制御に基づく駆動部３１に対する駆動制御の実行が継続された後、差分δｘが０（ゼロ）になった場合（ステップＳ２０６のＹＥＳ）、制御部２７は、ＰＩＤ制御に基づく初期動作工程（Ｐｒｏｃｅｓｓ  α）を終了し、続けて図１７で示す通常動作が実行されることとなる。
【００７９】
以上、図１４を用いて説明した初期動作工程（Ｐｒｏｃｅｓｓ  α）によれば、第二の実施形態に係る移動ロボット３０は、ＰＩＤ制御の作用によって通路内で所望の目標経路Ｌに早く誘導されることとなる（図１３参照）。かかる動作制御方法は、例えば、工場内などで、移動ロボット３０と人が通路を共有する場合に、移動ロボット３０が通路を早く空けることができるので、人の通行を移動ロボット３０が阻害することがなく、通路内で人が移動ロボット３０の通過を待たなければならないといった状況が発生することを好適に防止できるという効果がある。
【００８０】
上述したように、移動ロボット３０の移動が開始されると、まず初めに、図１４を用いて説明した初期動作工程（Ｐｒｏｃｅｓｓ  α）が実行される。この初期動作工程（Ｐｒｏｃｅｓｓ  α）の実行によって、移動ロボット３０が目標経路Ｌ上に移動し、通常動作に移行する。すなわち、図１７で示すように、初期動作工程（Ｐｒｏｃｅｓｓ  α）が終了すると、算出部２６は、ビーコン１１に設定されたＩＤ情報を取得し、制御部２７に送信する。第二の実施形態におけるＩＤ情報は、各ビーコン１１を一意に識別するためのビーコンＩＤである。ビーコンＩＤを受け取った制御部２７では、初期状態で設定されているビーコンＩＤが検出できたか否かを判定する（ステップＳ３０１）。初期状態において、ビーコン選択部２７ｂは、テーブルの最初の行に記憶されているビーコンＩＤを、目標とするビーコン１１のビーコンＩＤに選択する。
【００８１】
ビーコン１１を検出できない場合（ステップＳ３０１のＮＯ）、制御部２７は、ビーコン１１を検出できなかったことを示すエラー信号を出力する。駆動制御部２７ｃは、エラー信号に応じて、駆動部３１に駆動輪３２，３３を停止させる（ステップＳ３２１）。ビーコン選択部２７ｂは、エラー信号に応じて、ビーコン１１が検出できないことを示すエラー情報を外部へ出力し（ステップＳ３２２）、移動制御処理を終了させる。なお、エラー情報の出力は、移動ロボット３０に備えられる出力装置、例えばスピーカやディスプレイを用いて行われる。
【００８２】
ステップＳ３０１において、ビーコン１１を検出できた場合（ステップＳ３０１のＹＥＳ）、ビーコン選択部２７ｂおよび駆動制御部２７ｃは、ビーコン検出部２２の算出部２６からビーコン情報を取得することとなる（ステップＳ３０２）。ビーコン選択部２７ｂは、ビーコン情報により示されるビーコン１１が最終ビーコンであるか否かをテーブルに基づいて判定する（ステップＳ３０３）。
【００８３】
ステップＳ３０３において、ビーコン１１が最終ビーコンである場合（ステップＳ３０３のＹＥＳ）、駆動制御部２７ｃは、ビーコン情報により示されるビーコン１１までの距離Ｚが切替範囲内であるか否かを判定する（ステップＳ３３１）。ビーコン１１までの距離Ｚが切替範囲内である場合（ステップＳ３３１のＹＥＳ）、駆動制御部２７ｃは、駆動部３１に駆動輪３２，３３を停止させ（ステップＳ３３２）、移動制御処理を終了させる。
【００８４】
ステップＳ３３１において、ビーコン１１までの距離Ｚが切替範囲内でない場合（ステップＳ３３１のＮＯ）、駆動制御部２７ｃは、処理をステップＳ３０８へ進める。
【００８５】
ステップＳ３０３において、ビーコン１１が最終ビーコンでない場合（ステップＳ３０３のＮＯ）、駆動制御部２７ｃは、ビーコン情報により示されるビーコン１１までの距離Ｚが切替範囲内であるか否かを判定する（ステップＳ３０４）。ビーコン１１までの距離Ｚが切替範囲内でない場合（ステップＳ３０４のＮＯ）、駆動制御部２７ｃは、処理をステップＳ３０８へ進める。
【００８６】
ステップＳ３０４において、ビーコン１１までの距離Ｚが切替範囲内である場合（ステップＳ３０４のＹＥＳ）、駆動制御部２７ｃは、ビーコン１１の属性情報に方向転換の指示があるか否かをテーブルに基づいて判定する（ステップＳ３０５）。方向転換の指示がない場合（ステップＳ３０５のＮＯ）、駆動制御部２７ｃは、処理をステップＳ３０７へ進める。
【００８７】
方向転換の指示がある場合（ステップＳ３０５のＹＥＳ）、駆動制御部２７ｃは、ビーコン１１の回転情報をテーブルから取得し、移動ロボット３０の進行方向を回転情報の示す角度変更をする制御を、駆動部３１に対して行う（ステップＳ３０６）。ビーコン選択部２７ｂは、現在目標としているビーコン１１の次に目標とするビーコン１１のビーコンＩＤをテーブルから取得する。ビーコン選択部２７ｂは、取得したビーコンＩＤのビーコン１１をビーコン検出部２２へ出力することにより、取得したビーコンＩＤのビーコン１１を新たな目標に選択し（ステップＳ３０７）、処理をステップＳ３０１へ戻す。
【００８８】
ステップＳ３０８において、補正角算出部２７ｃ２は、ビーコン検出部２２から取得したビーコン情報に基づいて算出された差分ΔＸが許容範囲内であるか否かを判定する（ステップＳ３０８）。差分ΔＸに対する許容範囲は、移動ロボット３０に対して要求される移動の精度、ビーコン検出部２２におけるビーコン１１の検出の精度、モータ３４，３５の制御における精度などに基づいて予め定められる。差分ΔＸが許容範囲内でない場合（ステップＳ３０８のＮＯ）、補正角算出部２７ｃ２は、差分ΔＸに基づいて補正角Δθを算出する（ステップＳ３０９）。差分ΔＸが許容範囲内である場合（ステップＳ３０８のＹＥＳ）、補正角算出部２７ｃ２は、補正角Δθを０とする（ステップＳ３１０）。
【００８９】
その後、指令値算出部２７ｃ３は、駆動輪３２，３３を駆動するモータ３４，３５それぞれの角速度の測定値ωｌ’，ωｒ’を取得する（ステップＳ３１１）。指令値算出部２７ｃ３は、並進速度指令値Ｖｒｅｆと、角速度指令値ωｒｅｆと、角速度の測定値ωｌ’，ωｒ’と、補正角Δθとに基づいて、モータ３４，３５に対する角速度指令値ωｌ，ωｒを算出する（ステップＳ３１２）。指令値算出部２７ｃ３は、角速度指令値ωｌ，ωｒを駆動部３１へ出力し（ステップＳ３１３）、処理をステップＳ３０１へ戻す。
【００９０】
以上説明した初期動作工程（Ｐｒｏｃｅｓｓ  α）からステップＳ３３２までの各処理を含む制御処理が制御部２７によって行われることにより、ビーコン１１までの距離Ｚおよび方向θを逐次取得し、進行方向を補正できる。このような制御処理で進行方向が補正されることにより、移動ロボット３０は、境界４０から一定距離Ｘｒｅｆを隔てた移動経路を移動することができ、複数のビーコン１１に基づいて移動する際の移動距離を削減できる。
【００９１】
また、上述した第二の実施形態に係る移動ロボット３０の制御システムによれば、広い設置場所を必要としない比較的コンパクトなビーコン１１を採用した場合であっても、その識別および距離計測が精度よく可能である。さらに、上述した第二の実施形態に係る移動ロボット３０の制御システムによれば、安価なシステム構成とすることができるので、汎用性が高い移動ロボットの制御システムを提供することが可能となる。
【００９２】
以上、本発明の好適な実施形態について説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態には、多様な変更又は改良を加えることが可能である。
【００９３】
例えば、上述した第二の実施形態では、制御部２７によるＰＩＤ制御に基づく駆動部３１に対する駆動制御の実行が初期動作工程（Ｐｒｏｃｅｓｓ  α）として行われる例を示した。しかし、移動ロボット３０に対して差分δｘが０（ゼロ）となるようにＰＩＤ制御を行う場面は、初期動作だけではなく、他の動作を行う際にも適用可能である。具体的には、図１８は、移動ロボット３０が移動する通路に交差点が存在する場合のビーコン１１の配置例と目標経路Ｌの状況を示す図であるが、図１８に示すように、移動ロボット３０から見て交差点の遠方側の２つの角のうち進行方向の変更先側の１つの角にビーコン１１−ｍが設置されている場合、移動ロボット３０は、ＰＩＤ制御を行わない通常動作の場合には、ビーコン１１−ｍまでの距離Ｚが切替範囲内になる位置まで移動し、回転情報で示される角度の旋回により進行方向の変更を行うので、図中破線で示す目標経路Ｌに沿って移動を行うことになる。しかし、交差点に進入する直前の位置からＰＩＤ制御を行うと、図中実線で示すような経路をたどって移動ロボット３０が右折移動を行うので、効率的な移動経路で移動ロボット３０の動作制御を行うことが可能となる。
【００９４】
また例えば、上述した第二の実施形態では、制御部２７によるＰＩＤ制御に基づく駆動部３１に対する駆動制御の実行が初期動作工程（Ｐｒｏｃｅｓｓ  α）として行われる例が示されており、この初期動作工程（Ｐｒｏｃｅｓｓ  α）では、移動ロボット３０に対して差分δｘが０（ゼロ）となるようにＰＩＤ制御を行う場合が例示されていた。しかしながら、本発明に係るＰＩＤ制御については、差分δｘが０（ゼロ）となるようにする場合の他、差分δｘが所定の閾値になるように設定してＰＩＤ制御を行うようにしてもよい。このような変形例は、上述した第一の実施形態に対しても適用可能である。つまり、本発明において、初期動作から通常動作への移行制御を含む移動ロボットの動作制御全般については、様々な条件で実行することが可能である。
【００９５】
また例えば、上述した第一および第二の実施形態では、ビーコン１１に赤外線の信号を用いたが、本発明の範囲はこれに限定されるものではなく、信号を発しないマーカーを用いる形式のものを本発明に係る被検出体として採用しても、上述した第一および第二の実施形態と同様の効果を得ることができる。
【００９６】
また例えば、信号を発信する複数のビーコン１１などの発信器に代えて、信号を発信しない複数のマーカーを用いてもよい。マーカーを用いる場合、ビーコン検出部２２に代えてマーカー検出部が用いられる。マーカー検出部は、各マーカーに設けられた幾何学的な図形又は色の組み合わせを検出することにより、ビーコン検出部２２と同様に動作してもよい。幾何学的な図形又は色の組み合わせにマーカーを識別するＩＤを含めてもよい。幾何学的な図形として、例えばＱＲコード（登録商標）を用いてもよい。
【００９７】
また例えば、能動的に信号を発信するビーコン１１に代えて、移動ロボット３０から発信される信号に応じて応答信号を発信するＲＦＩＤ素子を用いたマーカーや、移動ロボット３０から発信される信号を反射する素子を用いたマーカーが配置されてもよい。受動的な動作を行うマーカーを用いる場合には、所定の信号を発信する発信器が移動ロボット３０に設けられる。このように、ビーコン１１やマーカーなどの被検出体は、移動ロボット３０の相対的な位置を検出できるものであればよい。
【００９８】
ここで、本発明に係る被検出体にマーカーを用いた場合の具体例を、図１９および図２０を用いて説明する。図１９は、本発明に係る移動ロボットに適用可能な画像処理装置のシステム構成例を示すブロック図である。また、図２０は、本発明に係る移動ロボットに適用可能な画像処理装置が撮像したマーカーの撮像データを２値化処理して得られた２値化画像を示すとともに、この２値化画像を走査してマーカーに設定されたＩＤ情報を得るための走査方法を説明するための図である。
【００９９】
図１９に示す画像処理装置１１０は、被検出体としてのマーカー１１１と、このマーカー１１１を読み取ることで所望の情報を取得し、処理を実行する画像処理装置本体１２１とを有して構成されている。
【０１００】
マーカー１１１は、二次元平面上に、正方形からなる複数のセル１１２を配置して構成されるものである。複数のセル１１２は、例えば、赤外ＬＥＤ光を反射可能な第一セルとしての白色セル１１２ａと、赤外ＬＥＤ光を反射不能な第二セルとしての黒色セル１１２ｂとから構成されている。図１９で示した実施形態の場合、１４個の白色セル１１２ａと、２６個の黒色セル１１２ｂとが、５列８行の行列配置で二次元平面上に配置されている。また、このマーカー１１１では、マーカー１１１の外周部を取り囲むように配置された２２個の黒色セル１１２ｂは情報を含むものではなく、マーカー１１１と空間とを区分けして読み取りの誤認識を防止するための単なる境界として機能する部分である。すなわち、図１９で示すマーカー１１１において被検出体として機能する箇所は、符号Ａで示す３列と、符号Ｂで示す６行とからなる３列６行、１８個のセル１１２の行列配置によって構成される部分である。
【０１０１】
マーカー１１１において被検出体として機能する３列６行の行列配置として構成される箇所は、例えば最上段の１行目に位置する符号Ｂ１で示す箇所が「検出スタート位置」として構成され、最下段の６行目に位置する符号Ｂ３で示す箇所が「検出エンド位置」として構成され、これら検出スタート位置Ｂ１と検出エンド位置Ｂ３で挟まれた２行目から５行目までの４行で構成される符号Ｂ２で示す箇所が「ＩＤ情報付与位置」として構成されている。
【０１０２】
検出スタート位置Ｂ１と検出エンド位置Ｂ３については、例えば、図１９の紙面左側から右側に向けて、「白、黒、白」の順でセル１１２が配置されており、白を「１」、黒を「０（ゼロ）」とするバイナリーコードで表現すると「１、０、１」と示すことができる。この「１、０、１」の情報を画像処理装置本体１２１側に認識させることで、マーカー１１１の最初の行と最終の行を読み取ることに成功したことが認識できる。すなわち、「１、０、１」で示される検出スタート位置Ｂ１と検出エンド位置Ｂ３を認識することで、この間に存在するであろう４行のＩＤ情報付与位置Ｂ２が正確に認識できることとなる。
【０１０３】
また、４行のＩＤ情報付与位置Ｂ２については、上の行から下の行に向けて「白、黒、白」、「白、白、白」、「白、黒、白」、「白、白、白」の順でセル１１２が配置されており、これらをバイナリーコードで表現すると「１、０、１」、「１、１、１」、「１、０、１」、「１、１、１」と示すことができる。このような３ビット×４行からなる構成の情報をマーカー１１１に持たせることにより、合計１２ビットのＩＤ情報をＩＤ情報付与位置Ｂ２に対して付与することが可能となる。そして、この１２ビットの情報を画像処理装置本体１２１側に認識させることで、様々な処理が実行可能となる。
【０１０４】
以上のように、検出スタート位置Ｂ１と検出エンド位置Ｂ３の読み取りが成功し、かつ、それらの間に存在するＩＤ情報付与位置Ｂ２を読み取ることで、ＩＤ情報を誤認識なく取得することが可能となる。
【０１０５】
なお、複数のセル１１２のうち、白色セル１１２ａは、後述する照射部１２３から照射される赤外ＬＥＤ光を反射して、後述する撮像部１２４，１２５にその反射光を撮像させることのできる材料にて構成されている。赤外ＬＥＤ光を反射する材料としては、アルミニウム箔や酸化チタンの薄膜等が用いられる。一方、黒色セル１１２ｂは、後述する照射部１２３から照射される赤外ＬＥＤ光を反射せず、後述する撮像部１２４，１２５で撮像した画像において黒色セル１１２ｂの箇所が暗部となるようにすることのできる材料にて構成されている。赤外ＬＥＤ光を反射しない材料としては、赤外カットフィルムや偏光フィルム、赤外線吸収材、黒色フェルト等が用いられる。つまり、図１９および図２０で示す実施形態では、投光部としての照射部１２３から出た赤外ＬＥＤ光をマーカー１１１の白色セル１１２ａにて反射し、受光部としての撮像部１２４，１２５で受光して画像を撮像する。このとき、被検出体であるマーカー１１１の黒色セル１１２ｂでは、受光部である撮像部１２４，１２５に対する反射光を減少させるので、その反射量の減少をとらえて検出する所謂回帰反射形の画像取得構成が採用されている。
【０１０６】
図１９で示す実施形態に係る画像処理装置本体１２１は、マーカー検出部１２２と、制御部１２７を備えて構成することができる。さらに、マーカー検出部１２２は、照射部１２３と、２つの撮像部１２４，１２５と、算出部１２６を備えることができる。
【０１０７】
照射部１２３は、赤外ＬＥＤ光をマーカー１１１に対して照射することができ、マーカー１１１側から反射された反射光を２つの撮像部１２４，１２５によって読み取らせるために用いられる。照射部１２３から照射される赤外ＬＥＤ光は、工場内などの暗所や可視光の強い場所等であってもマーカー１１１の撮像が可能である。
【０１０８】
２つの撮像部１２４，１２５は、マーカー検出部１２２の左右に配置された２つのカメラによって構成されている。これら２つの撮像部１２４，１２５は、照射部１２３から照射された赤外ＬＥＤ光がマーカー１１１を構成する白色セル１１２ａと黒色セル１１２ｂに照射された後、白色セル１１２ａから反射された光を２つのカメラで撮像する。なお、２つの撮像部１２４，１２５では、それぞれ単独の画像が撮影され、２つの撮像部１２４，１２５を用いて取得された撮像データは、算出部１２６に送信される。
【０１０９】
算出部１２６は、２つの撮像部１２４，１２５から送信された撮像データに基づき三角測量による演算を行うことで、画像処理装置本体１２１に対してマーカー１１１がどの様な距離（相対距離）と方向（相対角度）に位置するのかを算出することが可能である。
【０１１０】
最後に、算出部１２６の走査・演算方法について、図２０を用いて説明する。算出部１２６は、２つの撮像部１２４，１２５によって撮像された撮像データを２つの撮像部１２４，１２５から取得した後、得られた撮像データを２値化処理することで、図２０に示す２値化画像を得る。なお、この２値化処理の段階で、白色セル１１２ａから反射された赤外ＬＥＤ光の反射光と、黒色セル１１２ｂから反射されなかった箇所とが、白黒の２値化処理によって明確化される。
【０１１１】
上述した画像処理装置１１０を本発明に係る移動ロボットに適用することで、被検出体にマーカーを用いた移動ロボットを実現することができる。このように、本発明に係る移動ロボットは、多様な変形形態を取ることができる。
【０１１２】
また例えば、上述した第一および第二の実施形態では、ビーコン検出部２２は、ビーコンの選択部から入力されるビーコンＩＤのビーコン１１を検出する動作を説明した。しかし、ビーコン検出部２２は、検出した全てのビーコン１１のビーコン情報をそれぞれ算出し、算出した各ビーコン情報を制御部２７へ出力してもよい。この場合、ビーコンの選択部は、ビーコン選択部２７ｂから出力される指示に基づいて、複数のビーコン情報から目標とするビーコン１１のビーコン情報を選択する。
【０１１３】
また例えば、上述の移動ロボット３０は、内部にコンピュータシステムを有していてもよい。その場合、移動ロボット３０に備えられる制御部２７が行う処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、各機能部の処理が行われることになる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【０１１４】
なお、上記の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１１５】
その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【０１１６】
１１（１１−１，１１−２，１１−ｍ）  ビーコン（被検出体）、２２  ビーコン検出部、２４，２５  赤外線センサ（検出部）、２６  算出部、２７  制御部、２７ａ  移動経路記憶部、２７ｂ  ビーコン選択部、２７ｃ  駆動制御部、２７ｃ１  通過位置算出部、２７ｃ２  補正角算出部、２７ｃ３  指令値算出部、３０  移動ロボット、３１  駆動部、３２，３３  駆動輪、３４，３５  モータ、３６  モータ制御部、４０（４０−１，４０−２）  境界、Ｚ  （ビーコンまでの）距離、θ  方向、ｘ  距離（ビーコン通過距離）、ｙ  移動距離（ビーコン横までの距離）、Ｘｒｅｆ  一定距離、Ｐｐａｓｓ  通過点、δｘ，ΔＸ  差分、Δθ  補正角、Ｌ  目標経路、１１０  画像処理装置、１１１  マーカー、１１２  セル、１１２ａ  白色セル、１１２ｂ  黒色セル、１２１  画像処理装置本体、１２２  マーカー検出部、１２３  照射部、１２４，１２５  撮像部、１２６  算出部、１２７  制御部。
【図１】
2020154733.tif 000003
【図２】
2020154733.tif 000004
【図３】
2020154733.tif 000005
【図４】
2020154733.tif 000006
【図５】
2020154733.tif 000007
【図６】
2020154733.tif 000008
【図７】
2020154733.tif 000009
【図８】
2020154733.tif 000010
【図９】
2020154733.tif 000011
【図１０】
2020154733.tif 000012
【図１１】
2020154733.tif 000013
【図１２】
2020154733.tif 000014
【図１３】
2020154733.tif 000015
【図１４】
2020154733.tif 000016
【図１５】
2020154733.tif 000017
【図１６】
2020154733.tif 000018
【図１７】
2020154733.tif 000019
【図１８】
2020154733.tif 000020
【図１９】
2020154733.tif 000021
【図２０】
2020154733.tif 000022