(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038486
(43)【公開日】2024-03-19
(54)【発明の名称】移動ロボット用制御装置、移動ロボットの制御方法
(51)【国際特許分類】
G05D 1/247 20240101AFI20240312BHJP
G05D 1/43 20240101ALI20240312BHJP
【FI】
G05D1/247
G05D1/43
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2024009777
(22)【出願日】2024-01-25
(62)【分割の表示】P 2019052688の分割
【原出願日】2019-03-20
(71)【出願人】
【識別番号】390029805
【氏名又は名称】THK株式会社
(74)【代理人】
【識別番号】110003742
【氏名又は名称】弁理士法人海田国際特許事務所
(72)【発明者】
【氏名】北野 斉
(72)【発明者】
【氏名】内藤 隆
(57)【要約】
【課題】通路内で移動ロボットを所望の経路に早く誘導する。
【解決手段】
移動速度と進行方向とを変更する駆動部31を備える移動ロボット30に設置されることで、移動ロボット30の駆動制御を実行可能である移動ロボット用制御装置であって、検出部24,25と制御部27を備え、制御部27は、少なくとも移動ロボット30が目標地点へ向けて目標経路に沿った移動を開始しようとするときに、検出部24,25により検出された被検出体までの距離と方向に基づき、境界40に沿って配置された被検出体と移動ロボットの現在位置との移動経路に対して直交する方向の距離xを算出し、当該距離xと一定距離Xrefとの差分δxを算出し、当該差分δxを0(ゼロ)とするように駆動部31に対してフィードバック制御を実行する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
移動速度と進行方向とを変更する駆動部を備える移動ロボットに設置されることで、前記移動ロボットの駆動制御を実行可能である移動ロボット用制御装置であって、
目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、
前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、
を備え、
前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、また、前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、さらに、前記移動ロボットは、当該移動ロボットが前記境界から一定距離(Xref)を保って移動するように、当該境界から一定距離(Xref)だけ離れた位置に目標経路が設定された設定環境下で用いられ、
前記制御部は、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離(x)を算出可能であるとともに、当該距離(x)と前記一定距離(Xref)との差分(δx)を算出可能であり、さらに、当該差分(δx)を0(ゼロ)とするように前記駆動部に対して実行する駆動制御を、フィードバック制御に基づき実行可能であることを特徴とする移動ロボット用制御装置。
【請求項2】
請求項1に記載の移動ロボット用制御装置において、
前記制御部は、前記駆動部に対して実行する駆動制御を、前記差分(δx)を0(ゼロ)とし、かつ、進行方向に対する補正角を算出しないように実行可能であることを特徴とする移動ロボット用制御装置。
【請求項3】
請求項1に記載の移動ロボット用制御装置において、
前記移動経路に交差点が存在する場合、前記制御部は前記交差点に進入する直前の位置から前記フィードバック制御を行うことを特徴とする移動ロボット用制御装置。
【請求項4】
移動ロボットの移動速度と進行方向とを変更する駆動部と、
目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、
前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、
を備え、
前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、
前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、
前記移動ロボットが前記境界から一定距離(Xref)を保って移動するように、当該境界から一定距離(Xref)だけ離れた位置に目標経路が設定され、
前記検出部により検出された前記被検出体までの距離と方向とを取得する処理と、
前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出する処理と、
算出した進行方向に基づいて前記駆動部を駆動制御する処理と、
を含む処理を実行する移動ロボットの制御方法であって、
前記制御部が、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離(x)を算出する処理と、当該距離(x)と前記一定距離(Xref)との差分(δx)を算出する処理と、さらに、当該差分(δx)を0(ゼロ)とするように前記駆動部に対して実行する駆動制御を、フィードバック制御に基づき実行する処理を行うことを特徴とする移動ロボットの制御方法。
【請求項5】
請求項4に記載の移動ロボットの制御方法において、
前記制御部が、前記駆動部に対して実行する駆動制御について、前記差分(δx)を0(ゼロ)とし、かつ、進行方向に対する補正角を算出しないように実行する処理を行うことを特徴とする移動ロボットの制御方法。
【請求項6】
請求項4に記載の移動ロボットの制御方法において、
前記移動経路に交差点が存在する場合、前記制御部が、前記交差点に進入する直前の位置から前記フィードバック制御を実行する処理を行うことを特徴とする移動ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動ロボット用制御装置および移動ロボットの制御方法に関するものである。
【背景技術】
【0002】
従来から、自律移動する移動ロボットを誘導するために、ビーコンなどの発信器が用いられている。例えば、移動ロボットとしての掃除ロボットは、充電器に設けられたビーコンから発せられる信号に基づいて、充電器に向けて移動して充電器から電力の供給を受ける動作を行っている。
【0003】
このような移動ロボットは、近年その活用範囲を拡大している。例えば、工場内や物流倉庫などで使用される無人搬送車や、施設、ホール、空港などの公共施設内でのサービスロボットは、移動ロボット活用の一例である。例えば、下記特許文献1に記載された技術では、無人搬送車が走行環境に設置された複数の位置決め装置との相対位置を検出して自律走行するシステムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、この技術は、位置決め装置との相対位置を求めて走行ラインを決定するものであり、無人搬送車の位置が何らかの影響でずれてしまった場合などは、所望の走行ラインとは異なるラインを走行する可能性がある。そのような場合でも所望の走行ラインを走行するためには、所望の走行ラインの位置決め装置に対する相対位置を全て記憶しておく必要があり、メモリ容量の増加と所望の走行ラインの設定に要する工数の増加が問題となる。
【0006】
本発明は、上述した従来技術に存在する種々の課題に鑑みて成されたものであって、その目的は、移動ロボットを自律走行させる場合において、走行ラインを記憶する大容量のメモリや走行ラインを設定する工数が不要である移動ロボットの制御方法と、これに用いられる移動ロボット用制御装置を提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る移動ロボット用制御装置は、移動速度と進行方向とを変更する駆動部を備える移動ロボットに設置されることで、前記移動ロボットの駆動制御を実行可能である移動ロボット用制御装置であって、目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、を備え、前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、また、前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、さらに、前記移動ロボットは、当該移動ロボットが前記境界から一定距離(Xref)を保って移動するように、当該境界から一定距離(Xref)だけ離れた位置に目標経路が設定された設定環境下で用いられ、前記制御部は、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離(x)を算出可能であるとともに、当該距離(x)と前記一定距離(Xref)との差分(δx)を算出可能であり、さらに、当該差分(δx)を0(ゼロ)とするように前記駆動部に対して実行する駆動制御を、フィードバック制御に基づき実行可能であることを特徴とするものである。
【0008】
本発明に係る移動ロボットの制御方法は、移動ロボットの移動速度と進行方向とを変更する駆動部と、目標地点までの移動経路に沿って配置された複数の被検出体を検出する検出部と、前記検出部により検出された前記被検出体までの距離と方向とを取得し、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出し、算出した進行方向に基づいて前記駆動部を駆動制御する制御部と、を備え、前記移動経路には、前記移動ロボットの進行方向に対して少なくとも左右いずれか一方に境界が設定され、前記複数の被検出体は、前記移動経路を形成する前記境界に沿って配置され、前記移動ロボットが前記境界から一定距離(Xref)を保って移動するように、当該境界から一定距離(Xref)だけ離れた位置に目標経路が設定され、前記検出部により検出された前記被検出体までの距離と方向とを取得する処理と、前記被検出体までの距離と方向とが予め定められた関係を満たす進行方向を算出する処理と、算出した進行方向に基づいて前記駆動部を駆動制御する処理と、を含む処理を実行する移動ロボットの制御方法であって、前記制御部が、少なくとも前記移動ロボットが目標地点へ向けて前記目標経路に沿った移動を開始しようとするときに、前記検出部により検出された前記被検出体までの距離と方向に基づき、前記境界に沿って配置された前記被検出体と前記移動ロボットの現在位置との前記移動経路に対して直交する方向の距離(x)を算出する処理と、当該距離(x)と前記一定距離(Xref)との差分(δx)を算出する処理と、さらに、当該差分(δx)を0(ゼロ)とするように前記駆動部に対して実行する駆動制御を、フィードバック制御に基づき実行する処理を行うことを特徴とするものである。
【発明の効果】
【0009】
本発明によれば、移動ロボットを自律走行させる場合において、走行ラインを記憶する大容量のメモリや走行ラインを設定する工数が不要であり、また、通路内で移動ロボットを所望の経路に早く誘導することのできる移動ロボットの制御方法と、これに用いられる移動ロボット用制御装置を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】第一の実施形態に係る移動ロボットの基本となる移動例を示す図である。
【
図2】第一の実施形態に係る移動ロボットの構成例を示すブロック図である。
【
図3】第一の実施形態に係る制御部の構成例を示すブロック図である。
【
図4】第一の実施形態に係る移動経路記憶部に記憶されているテーブルの一例を示す図である。
【
図5】第一の実施形態に係る駆動制御部におけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。
【
図6】第一の実施形態に係る移動ロボットの動作説明をするための図である。
【
図7】第一の実施形態に係る移動ロボットの動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【
図8】第二の実施形態に係る移動ロボットの基本となる移動例を示す図である。
【
図9】第二の実施形態に係る移動ロボットの構成例を示すブロック図である。
【
図10】第二の実施形態に係る制御部の構成例を示すブロック図である。
【
図11】第二の実施形態に係る移動経路記憶部に記憶されているテーブルの一例を示す図である。
【
図12】第二の実施形態に係る駆動制御部におけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。
【
図13】第二の実施形態に係る移動ロボットが初期動作を実行する際の動作説明をするための図である。
【
図14】第二の実施形態に係る移動ロボットが初期動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【
図15】第二の実施形態に係る移動ロボットが通常動作を実行する際の動作説明をするための図である。
【
図16】境界上にビーコンを配置できない場合における、第二の実施形態に係る移動ロボットが通常動作を実行する際の動作例を示す図である。
【
図17】第二の実施形態に係る移動ロボットが通常動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【
図18】移動ロボットが移動する通路に交差点が存在する場合のビーコンの配置例と目標経路の状況を示す図である。
【
図19】本発明に係る移動ロボットに適用可能な画像処理装置のシステム構成例を示すブロック図である。
【
図20】本発明に係る移動ロボットに適用可能な画像処理装置が撮像したマーカーの撮像データを2値化処理して得られた2値化画像を示すとともに、この2値化画像を走査してマーカーに設定されたID情報を得るための走査方法を説明するための図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための好適な実施形態について、図面を用いて説明する。なお、以下の実施形態は、各請求項に係る発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
[第一の実施形態]
まず、
図1~
図7を用いて、本発明に係る移動ロボットの制御システムの基本形態である第一の実施形態を説明する。第一の実施形態は、移動ロボット30が検出したビーコン11-1までの距離Zと、この距離Zに基づき算出したビーコン通過距離xに基づき、移動ロボット30が動作する実施形態である。
【0013】
図1は、第一の実施形態に係る移動ロボット30の基本となる移動例を示す図である。移動ロボット30は、通路を定める境界40(40-1,40-2)に沿って配置される被検出体としてのビーコン11(11-1,11-2)を検出し、検出したビーコン11の位置に基づいて、境界40から一定距離Xrefを保ちながら目的地点に向かって移動する。発信器としてのビーコン11には、それぞれを一意に識別するビーコンIDが割り当てられている。ビーコン11は、例えば、ビーコンIDを示す信号を含む赤外線の信号を発信するものであり、その赤外線の信号における周期的な変化により表される。通路を定める境界40は、例えば壁や間仕切りや白線ラインなどといったものである。
【0014】
図1に示す移動例では、移動ロボット30の進行方向に対して左側の境界40-1から一定距離Xrefを保って移動ロボット30が移動する。移動ロボット30は、境界40-1から一定距離Xrefを保つために、検出したビーコン11-1までの距離Zを取得し、また、この距離Zに基づきビーコン通過距離xを算出する。その算出結果に基づいて、移動ロボット30は、一定距離Xrefとビーコン通過距離xとの差分であるδxを算出し、この差分δxを0(ゼロ)とするように移動する。差分δxを0(ゼロ)とするための進行動作は、フィードバック制御、例えば、PID制御に基づき決定される。移動ロボット30は、ビーコン11-1までの距離Zが予め定められた切替閾値より近くなると、目標をビーコン11-2に切り替えて移動する。移動ロボット30からの距離が切替閾値より近い範囲を切替範囲という。
【0015】
次に、
図2を参照して第一の実施形態に係る移動ロボット30の具体的な構成例を説明する。ここで、
図2は、第一の実施形態に係る移動ロボット30の構成例を示すブロック図である。第一の実施形態に係る移動ロボット30は、駆動部31と、ビーコン検出部22と、制御部27とを備える。
【0016】
駆動部31は、駆動輪32,33と、モータ34,35と、モータ制御部36とを備える。駆動輪32は、移動ロボット30の進行方向に対して左側に備えられる。駆動輪33は、移動ロボット30の進行方向に対して右側に備えられる。モータ34は、モータ制御部36の制御に応じて、駆動輪32を回転させる。モータ35は、モータ制御部36の制御に応じて、駆動輪33を回転させる。モータ制御部36は、制御部27から入力されるモータ34,35それぞれに対する角速度指令値に基づいて、モータ34,35に対して電力を供給する。
【0017】
モータ34,35がモータ制御部36から供給される電力に応じた角速度で回転することにより、移動ロボット30が前進又は後進する。また、モータ34,35の角速度に差を生じさせることにより、移動ロボット30の進行方向が変更される。例えば、前進の際に左側の駆動輪32の角速度を右側の駆動輪33の角速度より大きくすることにより、移動ロボット30は右旋回しながら移動する。また、駆動輪32,33それぞれを逆向きに回転させることにより、移動ロボット30は位置を変えずに旋回する。なお、移動ロボット30は、移動ロボット30の姿勢を安定させるために、駆動輪32,33以外の車輪を有していてもよい。
【0018】
ビーコン検出部22は、検出部としての赤外線センサ24,25と、算出部26とを備える。赤外線センサ24は、移動ロボット30の前面の左側に取り付けられ、移動ロボット30の前面側に位置するビーコン11から発信される赤外線の信号を検出する。赤外線センサ25は、移動ロボット30の前面の右側に取り付けられ、移動ロボット30の前面側に位置するビーコン11から発信される赤外線の信号を検出する。左右2つの赤外線センサ24,25は、移動ロボット30の中心を通る正面方向の直線に対して対称に、移動ロボット30の筐体に取り付けられる。赤外線センサ24,25には、例えば赤外線フィルタを組み合わせた撮像素子が用いられる。赤外線センサ24,25により撮像される画像における輝度の変化を検出することにより、ビーコン11が検出される。
【0019】
算出部26は、一方の赤外線センサ24により撮像された画像における目標のビーコン11の位置と、他方の赤外線センサ25により撮像された画像における目標のビーコン11の位置との差に基づいて、移動ロボット30からビーコン11までの距離Zを算出する。算出部26は、赤外線センサ24,25により撮像される画像に複数のビーコン11から発信される信号が含まれる場合、目標とするビーコン11のビーコンIDを検出し、目標とするビーコン11までの距離Zを算出する。ビーコンIDの検出は、例えば、時系列に連続する画像においてビーコンIDに対応する信号の周期的な変化を検出することにより行われる。算出部26は、算出した距離ZとビーコンIDとを含むビーコン情報を制御部27へ出力する。算出される距離Zは、赤外線センサ24と赤外線センサ25とを結ぶ線分上の中心からの距離である。赤外線センサ24と赤外線センサ25とを結ぶ線分が移動ロボット30の進行方向に対して直交するように、赤外線センサ24,25が取り付けられていると、算出部26における演算負荷を軽減できる。
【0020】
制御部27は、ビーコン検出部22から取得するビーコン情報に基づいて、駆動部31を制御する。
図3は、第一の実施形態に係る制御部27の構成例を示すブロック図である。第一の実施形態に係る制御部27は、移動経路記憶部27aと、ビーコン選択部27bと、駆動制御部27cとを備える。移動経路記憶部27aには、移動ロボット30の移動経路に沿って配置された複数のビーコン11に関する属性情報を含むテーブルが予め記憶されている。ビーコン選択部27bは、移動経路記憶部27aに記憶されているテーブルに基づいて、目標とするビーコン11のビーコンIDをビーコン検出部22へ出力する。ビーコン選択部27bは、ビーコン検出部22から入力されるビーコン情報に基づいて、目標とするビーコン11を切り替えるか否かを判定する。ビーコン選択部27bは、目標とするビーコン11を切り替える場合、現在の目標とするビーコン11の次のビーコン11をテーブルから選択する。
【0021】
駆動制御部27cは、ビーコン検出部22から出力されるビーコン情報に基づいて、移動経路記憶部27aに記憶されているテーブルから属性情報および制御情報を読み出す。属性情報は、目標とするビーコン11に関する情報である。制御情報は、目標とするビーコン11に紐付けられた制御を示す情報である。ビーコン11に紐付けられた制御は、例えば進行方向の変更を示すビーコン11の近傍において旋回する制御や、停止位置を示すビーコン11の近傍において停止する制御などである。つまり、駆動制御部27cは、ビーコン情報、属性情報および制御情報に基づいて、駆動部31を駆動制御する。
【0022】
図4は、第一の実施形態に係る移動経路記憶部27aに記憶されているテーブルの一例を示す図である。テーブルは、「ビーコンID」と、「通路距離」と、「設置側」と、「方向転換」と、「最終ビーコン」との項目の列を備える。各行は、ビーコン11ごとに存在する属性情報である。テーブルにおける各行は、移動ロボット30が移動経路に沿って移動する際に通過するビーコン11の順序で並んでいる。「ビーコンID」の列には、行に対応するビーコン11のビーコンIDが含まれる。「通路距離」の列には、行に対応するビーコン11と、移動ロボット30の移動経路がどれだけ離れた距離であるかを示す距離情報が含まれる。通路距離は、正の値として設定される値であり、対象となるビーコン11から移動ロボット30の移動経路までの距離を示す値である。また、この実施形態において通路距離は、ビーコン11から移動ロボット30の移動経路における移動方向に対して略直交する方向に位置する目標地点までの距離を示している。
【0023】
「設置側」の列は、移動ロボット30が移動経路に沿って移動する場合において、行に対応するビーコン11が移動ロボット30の右側又は左側のいずれに配置されているかを示す情報が含まれる。「方向転換」の列は、行に対応するビーコン11に対して移動ロボット30が予め定められた距離又は切替閾値まで近づいたときに、移動ロボット30の進行方向の変更を示す回転情報が含まれる。回転情報が0度である場合、移動ロボット30の進行方向の変更がないことを示す。回転情報が0度以外である場合、回転情報が示す角度分、移動ロボット30の進行方向を時計回り又は反時計回りに変更する。「最終ビーコン」の列は、行に対応するビーコン11が、移動経路における目標地点の近傍にあるビーコン11であるか否かを示す情報が含まれる。
図4に示すテーブルでは、例えばビーコンID「M」を有するビーコン11が目標地点近傍のビーコンであることを示す。
【0024】
図5は、第一の実施形態に係る駆動制御部27cにおけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。駆動制御部27cは、通過位置算出部27c
1と、指令値算出部27c
3とを備える。通過位置算出部27c
1には、ビーコン情報に含まれるビーコン11までの距離Zが入力される。通過位置算出部27c
1は、距離Zに基づいて、現在の移動ロボット30の進行方向で移動してビーコン11に最接近したときのビーコン11までの距離xを算出する。移動ロボット30がビーコン11に最接近したときの位置は、移動ロボット30の位置から進行方向に伸ばした移動直線に対して直交する直線であって、ビーコン11の位置を通過する直線と、移動直線との交点である。距離xは、(Z・sinθ)として得られる。距離xは、ビーコン通過距離ともいう。
【0025】
指令値算出部27c3には、並進速度指令値Vrefと、角速度指令値ωrefと、角速度の測定値ωl’,ωr’と、差分δxとが入力される。並進速度指令値Vrefは、移動ロボット30の並進速度に対する指令値(目標値)である。角速度指令値ωrefは、進行方向を基準として時計回り方向又は反時計回り方向へ進行方向を変更する際の角速度である。角速度指令値ωrefは、時計回り方向の変化量を正の値として定めてもよいし、反時計回り方向の変化量を正の値として定めてもよい。角速度の測定値ωl’,ωr’は、モータ34,35それぞれに設けられているエンコーダにより測定された角速度である。指令値算出部27c3は、制御部27が差分δxに基づくPID制御を実行することで駆動部31へ出力するための角速度指令値ωl,ωrを算出し、駆動部31を動作制御することが可能となっている。
【0026】
次に、
図6を用いて、第一の実施形態に係る移動ロボット30の駆動制御方法について説明する。ここで、
図6は、第一の実施形態に係る移動ロボット30の動作説明をするための図である。
【0027】
第一の実施形態では、移動ロボット30のビーコン検出部22が境界40-1上に配置されたビーコン11-1を検出することにより、移動ロボット30からビーコン11までの距離Zが得られる。上述したように、この距離Zは、算出部26によって算出される値である。距離Zの算出値を送信された制御部27では、通過位置算出部27c
1が距離Zからビーコン通過距離xを算出する。なお、ビーコン通過距離xは、境界40-1に沿って配置されたビーコン11-1と移動ロボット30の現在位置との移動経路に対して直交する方向の距離である。移動ロボット30は、移動経路に沿って配置されたビーコン11-1から一定距離Xref離れた通過点Ppassを把握することで、破線で示された目標経路Lを把握することができる。通過点Ppassは、ビーコン11の属性情報のうち「設置側」を示す情報に基づいて定まる。なお、
図6は、ビーコン11(11-1,11-2)が移動経路の左側に設定されている場合を示している。
【0028】
また、
図6に示す例において、移動ロボット30が目標地点へ向けて目標経路Lに沿った移動を開始しようとするときに、通過位置算出部27c
1が距離Zから算出したビーコン通過距離xと、目標経路Lを規定するために予め設定されたビーコン11からの距離である一定距離Xrefに基づいて、制御部27は、当該ビーコン通過距離xと一定距離Xrefとの差である差分δxを算出する。算出された差分δxの情報は、指令値算出部27c
3に伝達される。指令値算出部27c
3は、受け取った差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行する。またこのとき、指令値算出部27c
3は、PID制御に基づいて差分δxを0(ゼロ)とするように角速度指令値ωl,ωrを算出することで、駆動部31に対する駆動制御を実行する。
【0029】
なお、指令値算出部27c3が算出する動作指令情報は、例えば、フィードバック制御に含まれる制御方法のひとつであるPID制御によるものである。ここで、PID制御とは、比例動作(P(Proportional)動作)、積分動作(I(Integral)動作)、微分動作(D(Differential)動作)を組み合わせた制御方法いい、入力値の制御を出力値と目標値との偏差、その積分、および微分の3つの要素によって行う制御方法のことである。このようなPID制御によって制御部27(指令値算出部27c3)は差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行するので、移動ロボット30は、移動動作を行う際に常に目標経路Lに向けてより速く接近するように動作することとなる。また、PID制御の微分動作(D(Differential)動作)の作用によって、移動目標である目標経路Lに対して移動ロボット30が行き過ぎたり(オーバーシュート)、振動したり(ハンチング)する現象を起こすことが好適に防止できるので、スムーズな曲率を描いた経路をたどって移動ロボット30を目標経路Lに早期に移動させることが可能となる。
【0030】
以上説明した駆動制御方法によって移動ロボット30が移動経路に沿って移動していくと、最終的には、目標位置に近いビーコンID「M」を有するビーコン11の近傍に移動ロボット30が近づいていき、停止制御が実行されることとなる。
【0031】
次に、
図7を参照図面に加えて、第一の実施形態に係る移動ロボット30の制御システムにおける具体的な処理内容を説明する。ここで、
図7は、第一の実施形態に係る移動ロボット30の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【0032】
移動ロボット30の移動が開始されると、まず初めに、算出部26は、ビーコン11に設定されたID情報を取得し、制御部27に送信する。第一の実施形態におけるID情報は、各ビーコン11を一意に識別するためのビーコンIDである。ビーコンIDを受け取った制御部27では、初期状態で設定されているビーコンIDが検出できたか否かを判定する(ステップS101)。初期状態において、ビーコン選択部27bは、テーブルの最初の行に記憶されているビーコンIDを、目標とするビーコン11のビーコンIDに選択する。
【0033】
ビーコン11を検出できない場合(ステップS101のNO)、制御部27は、ビーコン11を検出できなかったことを示すエラー信号を出力する。駆動制御部27cは、エラー信号に応じて、駆動部31に駆動輪32,33を停止させる(ステップS121)。ビーコン選択部27bは、エラー信号に応じて、ビーコン11が検出できないことを示すエラー情報を外部へ出力し(ステップS122)、移動制御処理を終了させる。なお、エラー情報の出力は、移動ロボット30に備えられる出力装置、例えばスピーカやディスプレイを用いて行われる。
【0034】
ステップS101において、ビーコン11を検出できた場合(ステップS101のYES)、ビーコン選択部27bおよび駆動制御部27cは、ビーコン検出部22の算出部26からビーコン情報を取得することとなる(ステップS102)。ビーコン選択部27bは、ビーコン情報により示されるビーコン11が最終ビーコンであるか否かをテーブルに基づいて判定する(ステップS103)。
【0035】
ステップS103において、ビーコン11が最終ビーコンである場合(ステップS103のYES)、駆動制御部27cは、ビーコン情報により示されるビーコン11までの距離Zが切替範囲内であるか否かを判定する(ステップS131)。ビーコン11までの距離Zが切替範囲内である場合(ステップS131のYES)、駆動制御部27cは、駆動部31に駆動輪32,33を停止させ(ステップS132)、移動制御処理を終了させる。
【0036】
ステップS131において、ビーコン11までの距離Zが切替範囲内でない場合(ステップS131のNO)、駆動制御部27cは、処理をステップS108へ進める。
【0037】
ステップS103において、ビーコン11が最終ビーコンでない場合(ステップS103のNO)、駆動制御部27cは、ビーコン情報により示されるビーコン11までの距離Zが切替範囲内であるか否かを判定する(ステップS104)。ビーコン11までの距離Zが切替範囲内でない場合(ステップS104のNO)、駆動制御部27cは、処理をステップS108へ進める。
【0038】
ステップS104において、ビーコン11までの距離Zが切替範囲内である場合(ステップS104のYES)、駆動制御部27cは、ビーコン11の属性情報に方向転換の指示があるか否かをテーブルに基づいて判定する(ステップS105)。方向転換の指示がない場合(ステップS105のNO)、駆動制御部27cは、処理をステップS107へ進める。
【0039】
方向転換の指示がある場合(ステップS105のYES)、駆動制御部27cは、ビーコン11の回転情報をテーブルから取得し、移動ロボット30の進行方向を回転情報の示す角度変更をする制御を、駆動部31に対して行う(ステップS106)。ビーコン選択部27bは、現在目標としているビーコン11の次に目標とするビーコン11のビーコンIDをテーブルから取得する。ビーコン選択部27bは、取得したビーコンIDのビーコン11をビーコン検出部22へ出力することにより、取得したビーコンIDのビーコン11を新たな目標に選択し(ステップS107)、処理をステップS101へ戻す。
【0040】
ステップS108において、距離Zからなるビーコン情報を取得した制御部27では、通過位置算出部27c1が距離Zからビーコン通過距離xを算出する(ステップS108)。なお、距離xは、境界40-1に沿って配置されたビーコン11-1と移動ロボット30の現在位置との移動経路に対して直交する方向の距離である。また、制御部27では、算出したビーコン通過距離xと、目標経路Lを規定するために予め設定されたビーコン11-1からの距離である一定距離Xrefに基づいて、当該距離xと一定距離Xrefとの差である差分δxを算出する(ステップS109)。
【0041】
続いて、ステップS109で算出された差分δxの情報は、制御部27の通過位置算出部27c1から指令値算出部27c3に伝達される。指令値算出部27c3は、受け取った差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行する(ステップS110)。またこのとき、指令値算出部27c3は、PID制御に基づいて差分δxを0(ゼロ)とするように角速度指令値ωl,ωrを算出することで、駆動部31に対する駆動制御が実行される。
【0042】
制御部27の指令値算出部27c3が差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行した後、制御部27は、差分δxが0(ゼロ)になったか否かを確認し続ける(ステップS111)。そして、差分δxが0(ゼロ)になっていない場合(ステップS111のNO)、制御部27は、PID制御に基づく駆動部31に対する駆動制御の実行を継続する(ステップS112)。
【0043】
制御部27によるPID制御に基づく駆動部31に対する駆動制御の実行が継続された後、差分δxが0(ゼロ)になった場合(ステップS111のYES)、制御部27は、処理をステップS101へ戻す。そして、移動ロボット30が最終の目標地点に到達して駆動部31に駆動輪32,33を停止させるステップS132の処理を実行するまで、
図7で示すフローチャートに基づく移動制御処理が実行される。
【0044】
以上、
図7を用いて説明した移動制御処理によれば、第一の実施形態に係る移動ロボット30は、PID制御の作用によって通路内で所望の目標経路Lに早く誘導されることとなる(
図6参照)。かかる動作制御方法は、例えば、工場内などで、移動ロボット30と人が通路を共有する場合に、移動ロボット30が通路を早く空けることができるので、人の通行を移動ロボット30が阻害することがなく、通路内で人が移動ロボット30の通過を待たなければならないといった状況が発生することを好適に防止できるという効果がある。
【0045】
また、上述した第一の実施形態に係る移動ロボット30の制御システムによれば、広い設置場所を必要としない比較的コンパクトなビーコン11を採用した場合であっても、その識別および距離計測が精度よく可能である。さらに、上述した第一の実施形態に係る移動ロボット30の制御システムによれば、安価なシステム構成とすることができるので、汎用性が高い移動ロボットの制御システムを提供することが可能となる。
【0046】
以上、
図1~
図7を用いて、本発明に係る移動ロボットの制御システムの基本形態である第一の実施形態を説明した。上述した第一の実施形態は、移動ロボット30が検出したビーコン11-1までの距離Zと、この距離Zに基づき算出したビーコン通過距離xに基づき、移動ロボット30が動作する実施形態であった。次に、上述した第一の実施形態の動作制御方法を移動ロボット30の初期動作に利用しつつ、別の動作制御方法と組み合わせた動作制御方法である第二の実施形態について、
図8~
図17を用いて説明することとする。なお、第二の実施形態の説明において、上述した第一の実施形態と同一又は類似する部材等については、同一符号を付して説明を省略する場合がある。
【0047】
[第二の実施形態]
図8は、第二の実施形態に係る移動ロボット30の基本となる移動例を示す図である。移動ロボット30は、通路を定める境界40(40-1,40-2)に沿って配置される被検出体としてのビーコン11(11-1,11-2)を検出し、検出したビーコン11の位置に基づいて、境界40から一定距離Xrefを保ちながら目的地点に向かって移動する。発信器としてのビーコン11には、それぞれを一意に識別するビーコンIDが割り当てられている。ビーコン11は、例えば、ビーコンIDを示す信号を含む赤外線の信号を発信するものであり、その赤外線の信号における周期的な変化により表される。通路を定める境界40は、例えば壁や間仕切りや白線ラインなどといったものである。
【0048】
図8に示す移動例では、移動ロボット30の進行方向に対して左側の境界40-1から一定距離Xrefを保って移動ロボット30が移動する。移動ロボット30は、境界40-1から一定距離Xrefを保つために、検出したビーコン11-1までの距離Zと方向θとを取得し、距離Zと方向θとが予め定められた条件を満たす進行方向を算出する。移動ロボット30は、算出した進行方向に移動する。方向θは、移動ロボット30の進行方向と、検出されたビーコン11-1の方向とが成す角である。予め定められた条件を満たす進行方向は、初期動作についてはフィードバック制御、例えば、PID制御に基づき決定される進行方向であり、初期動作を終えて通常動作に移行した状態では、方向θがarcsin(Xref/Z)となる進行方向である。移動ロボット30は、ビーコン11-1までの距離Zが予め定められた切替閾値より近くなると、目標をビーコン11-2に切り替えて移動する。移動ロボット30からの距離が切替閾値より近い範囲を切替範囲という。
【0049】
次に、
図9を参照して第二の実施形態に係る移動ロボット30の具体的な構成例を説明する。ここで、
図9は、第二の実施形態に係る移動ロボット30の構成例を示すブロック図である。第二の実施形態に係る移動ロボット30は、駆動部31と、ビーコン検出部22と、制御部27とを備える。
【0050】
駆動部31は、駆動輪32,33と、モータ34,35と、モータ制御部36とを備える。駆動輪32は、移動ロボット30の進行方向に対して左側に備えられる。駆動輪33は、移動ロボット30の進行方向に対して右側に備えられる。モータ34は、モータ制御部36の制御に応じて、駆動輪32を回転させる。モータ35は、モータ制御部36の制御に応じて、駆動輪33を回転させる。モータ制御部36は、制御部27から入力されるモータ34,35それぞれに対する角速度指令値に基づいて、モータ34,35に対して電力を供給する。
【0051】
モータ34,35がモータ制御部36から供給される電力に応じた角速度で回転することにより、移動ロボット30が前進又は後進する。また、モータ34,35の角速度に差を生じさせることにより、移動ロボット30の進行方向が変更される。例えば、前進の際に左側の駆動輪32の角速度を右側の駆動輪33の角速度より大きくすることにより、移動ロボット30は右旋回しながら移動する。また、駆動輪32,33それぞれを逆向きに回転させることにより、移動ロボット30は位置を変えずに旋回する。なお、移動ロボット30は、移動ロボット30の姿勢を安定させるために、駆動輪32,33以外の車輪を有していてもよい。
【0052】
ビーコン検出部22は、検出部としての赤外線センサ24,25と、算出部26とを備える。赤外線センサ24は、移動ロボット30の前面の左側に取り付けられ、移動ロボット30の前面側に位置するビーコン11から発信される赤外線の信号を検出する。赤外線センサ25は、移動ロボット30の前面の右側に取り付けられ、移動ロボット30の前面側に位置するビーコン11から発信される赤外線の信号を検出する。左右2つの赤外線センサ24,25は、移動ロボット30の中心を通る正面方向の直線に対して対称に、移動ロボット30の筐体に取り付けられる。赤外線センサ24,25には、例えば赤外線フィルタを組み合わせた撮像素子が用いられる。赤外線センサ24,25により撮像される画像における輝度の変化を検出することにより、ビーコン11が検出される。
【0053】
算出部26は、一方の赤外線センサ24により撮像された画像における目標のビーコン11の位置と、他方の赤外線センサ25により撮像された画像における目標のビーコン11の位置との差に基づいて、移動ロボット30からビーコン11までの距離Zと方向θとを算出する。算出部26は、赤外線センサ24,25により撮像される画像に複数のビーコン11から発信される信号が含まれる場合、目標とするビーコン11のビーコンIDを検出し、目標とするビーコン11までの距離Zと方向θとを算出する。ビーコンIDの検出は、例えば、時系列に連続する画像においてビーコンIDに対応する信号の周期的な変化を検出することにより行われる。算出部26は、算出した距離Zおよび方向θとビーコンIDとを含むビーコン情報を制御部27へ出力する。算出される距離Zは、赤外線センサ24と赤外線センサ25とを結ぶ線分上の中心からの距離である。赤外線センサ24と赤外線センサ25とを結ぶ線分が移動ロボット30の進行方向に対して直交するように、赤外線センサ24,25が取り付けられていると、算出部26における演算負荷を軽減できる。
【0054】
制御部27は、ビーコン検出部22から取得するビーコン情報に基づいて、駆動部31を制御する。
図10は、第二の実施形態に係る制御部27の構成例を示すブロック図である。第二の実施形態に係る制御部27は、移動経路記憶部27aと、ビーコン選択部27bと、駆動制御部27cとを備える。移動経路記憶部27aには、移動ロボット30の移動経路に沿って配置された複数のビーコン11に関する属性情報を含むテーブルが予め記憶されている。ビーコン選択部27bは、移動経路記憶部27aに記憶されているテーブルに基づいて、目標とするビーコン11のビーコンIDをビーコン検出部22へ出力する。ビーコン選択部27bは、ビーコン検出部22から入力されるビーコン情報に基づいて、目標とするビーコン11を切り替えるか否かを判定する。ビーコン選択部27bは、目標とするビーコン11を切り替える場合、現在の目標とするビーコン11の次のビーコン11をテーブルから選択する。
【0055】
駆動制御部27cは、ビーコン検出部22から出力されるビーコン情報に基づいて、移動経路記憶部27aに記憶されているテーブルから属性情報および制御情報を読み出す。属性情報は、目標とするビーコン11に関する情報である。制御情報は、目標とするビーコン11に紐付けられた制御を示す情報である。ビーコン11に紐付けられた制御は、例えば進行方向の変更を示すビーコン11の近傍において旋回する制御や、停止位置を示すビーコン11の近傍において停止する制御などである。つまり、駆動制御部27cは、ビーコン情報、属性情報および制御情報に基づいて、駆動部31を駆動制御する。
【0056】
図11は、第二の実施形態に係る移動経路記憶部27aに記憶されているテーブルの一例を示す図である。テーブルは、「ビーコンID」と、「通路距離」と、「設置側」と、「方向転換」と、「最終ビーコン」との項目の列を備える。各行は、ビーコン11ごとに存在する属性情報である。テーブルにおける各行は、移動ロボット30が移動経路に沿って移動する際に通過するビーコン11の順序で並んでいる。「ビーコンID」の列には、行に対応するビーコン11のビーコンIDが含まれる。「通路距離」の列には、行に対応するビーコン11と、移動ロボット30の移動経路がどれだけ離れた距離であるかを示す距離情報が含まれる。通路距離は、正の値として設定される値であり、対象となるビーコン11から移動ロボット30の移動経路までの距離を示す値である。また、この実施形態において通路距離は、ビーコン11から移動ロボット30の移動経路における移動方向に対して略直交する方向に位置する目標地点までの距離を示している。
【0057】
「設置側」の列は、移動ロボット30が移動経路に沿って移動する場合において、行に対応するビーコン11が移動ロボット30の右側又は左側のいずれに配置されているかを示す情報が含まれる。「方向転換」の列は、行に対応するビーコン11に対して移動ロボット30が予め定められた距離又は切替閾値まで近づいたときに、移動ロボット30の進行方向の変更を示す回転情報が含まれる。回転情報が0度である場合、移動ロボット30の進行方向の変更がないことを示す。回転情報が0度以外である場合、回転情報が示す角度分、移動ロボット30の進行方向を時計回り又は反時計回りに変更する。「最終ビーコン」の列は、行に対応するビーコン11が、移動経路における目標地点の近傍にあるビーコン11であるか否かを示す情報が含まれる。
図11に示すテーブルでは、例えばビーコンID「M」を有するビーコン11が目標地点近傍のビーコンであることを示す。
【0058】
図12は、第二の実施形態に係る駆動制御部27cにおけるビーコン情報に基づいた制御に係る構成例を示すブロック図である。駆動制御部27cは、通過位置算出部27c
1と、補正角算出部27c
2と、指令値算出部27c
3とを備える。通過位置算出部27c
1には、ビーコン情報に含まれるビーコン11までの距離Zおよび方向θが入力される。通過位置算出部27c
1は、距離Zおよび方向θに基づいて、現在の移動ロボット30の進行方向で移動してビーコン11に最接近したときのビーコン11までの距離xと、ビーコン11に最接近するまでの移動距離yとを算出する。移動ロボット30がビーコン11に最接近したときの位置は、移動ロボット30の位置から進行方向に伸ばした移動直線に対して直交する直線であって、ビーコン11の位置を通過する直線と、移動直線との交点である。距離xは、(Z・sinθ)として得られる。移動距離yは、(Z・cosθ)として得られる。距離xは、ビーコン通過距離ともいう。また、移動距離yは、ビーコン横までの距離ともいう。
【0059】
補正角算出部27c2には、通路の境界40から移動経路までの一定距離Xrefから距離xを減算して得られる差分ΔXと、移動距離yとが入力される。補正角算出部27c2は、差分ΔXと移動距離yとに基づいて、移動ロボット30の進行方向に対する補正角Δθを算出する。具体的には、補正角算出部27c2は、arctan(ΔX/y)で得られる値を補正角Δθとする。
【0060】
指令値算出部27c3には、並進速度指令値Vrefと、角速度指令値ωrefと、角速度の測定値ωl’,ωr’と、補正角Δθと、差分δxとが入力される。並進速度指令値Vrefは、移動ロボット30の並進速度に対する指令値(目標値)である。角速度指令値ωrefは、進行方向を基準として時計回り方向又は反時計回り方向へ進行方向を変更する際の角速度である。角速度指令値ωrefは、時計回り方向の変化量を正の値として定めてもよいし、反時計回り方向の変化量を正の値として定めてもよい。角速度の測定値ωl’,ωr’は、モータ34,35それぞれに設けられているエンコーダにより測定された角速度である。指令値算出部27c3は、並進速度指令値Vrefと角速度指令値ωrefと角速度の測定値ωl’,ωr’と補正角Δθとに基づいて、移動ロボット30を並進速度指令値Vrefおよび角速度指令値ωrefで移動させつつ、進行方向を補正角Δθ変更させる角速度指令値ωl,ωrを算出する。指令値算出部27c3は、算出した角速度指令値ωl,ωrを駆動部31へ出力する。
【0061】
また、指令値算出部27c3は、制御部27が差分δxに基づくPID制御を実行することで駆動部31へ出力するための角速度指令値ωl,ωrを算出し、駆動部31を動作制御することが可能となっている。
【0062】
さて、第二の実施形態では、移動ロボット30が目標地点へ向けて目標経路Lに沿った移動を開始しようとする初期動作のときと、初期動作を終えて目標経路Lに沿った移動を継続する通常動作のときとで、異なる駆動制御方法が実行されることとなる。そこで、
図13と
図15を用いて、第二の実施形態に係る移動ロボット30の駆動制御方法について説明することとする。
【0063】
まず、
図13は、第二の実施形態に係る移動ロボット30が初期動作を実行する際の動作説明をするための図である。ビーコン検出部22が境界40-1上に配置されたビーコン11-1を検出することにより、移動ロボット30からビーコン11までの距離Zと、移動ロボット30の進行方向を基準としてビーコン11-1が位置する方向θとが得られる。上述したように、これら距離Zと方向θは、算出部26によって算出される値である。これら距離Zと方向θからなる算出値を送信された制御部27では、通過位置算出部27c
1が距離Zおよび方向θから距離xおよび移動距離yを算出する。なお、距離xは、境界40-1に沿って配置されたビーコン11-1と移動ロボット30の現在位置(スタート位置)との移動経路に対して直交する方向の距離である。移動ロボット30は、移動経路に沿って配置されたビーコン11-1から一定距離Xref離れた通過点Ppassを把握することで、破線で示された目標経路Lを把握することができる。通過点Ppassは、ビーコン11の属性情報のうち「設置側」を示す情報に基づいて定まる。なお、
図13は、ビーコン11(11-1,11-2)が移動経路の左側に設定されている場合を示している。
【0064】
図13に示す例において、移動ロボット30が目標地点へ向けて目標経路Lに沿った移動を開始しようとするときに、通過位置算出部27c
1が距離Zおよび方向θから算出した距離xと、目標経路Lを規定するために予め設定されたビーコン11からの距離である一定距離Xrefに基づいて、制御部27は、当該距離xと一定距離Xrefとの差である差分δxを算出する。算出された差分δxの情報は、補正角算出部27c
2を経由して指令値算出部27c
3に伝達される。このとき、補正角算出部27c
2は稼働せずに、差分δxの情報を受け渡すだけである。指令値算出部27c
3は、受け取った差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行する。またこのとき、指令値算出部27c
3は、PID制御に基づいて差分δxを0(ゼロ)とするように角速度指令値ωl,ωrを算出することで、駆動部31に対する駆動制御を実行する。
【0065】
なお、指令値算出部27c3が算出する動作指令情報は、例えば、フィードバック制御に含まれる制御方法のひとつであるPID制御によるものである。ここで、PID制御とは、比例動作(P(Proportional)動作)、積分動作(I(Integral)動作)、微分動作(D(Differential)動作)を組み合わせた制御方法いい、入力値の制御を出力値と目標値との偏差、その積分、および微分の3つの要素によって行う制御方法のことである。このようなPID制御によって制御部27(指令値算出部27c3)は差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行するので、移動ロボット30は初期動作において目標経路Lに向けてより速く接近するように動作することとなる。また、PID制御の微分動作(D(Differential)動作)の作用によって、移動目標である目標経路Lに対して移動ロボット30が行き過ぎたり(オーバーシュート)、振動したり(ハンチング)する現象を起こすことが好適に防止できるので、スムーズな曲率を描いた経路をたどって移動ロボット30を目標経路Lに早期に移動させることが可能となる。
【0066】
一方、
図15は、第二の実施形態に係る移動ロボット30が通常動作を実行する際の動作説明をするための図である。なお、
図15では、第二の実施形態に係る駆動制御部27cにおいて算出される補正角Δθが示されている。ビーコン検出部22が境界40-1上に配置されたビーコン11を検出することにより、移動ロボット30からビーコン11までの距離Zと、移動ロボット30の進行方向を基準としてビーコン11が位置する方向θとが得られる。通過位置算出部27c
1が距離Zおよび方向θから距離xおよび移動距離yを算出する。移動ロボット30は、移動経路に沿って配置されたビーコン11から一定距離Xref離れた通過点Ppassを通過するために、進行方向を変更する必要がある。通過点Ppassは、ビーコン11の属性情報のうち「設置側」を示す情報に基づいて定まる。なお、
図15は、ビーコン11が移動経路の左側に設定されている場合を示している。
【0067】
図15に示す例において、現在の進行方向を維持したまま移動ロボット30が移動すると、移動ロボット30は、通過点Ppassより差分ΔX離れた位置を通過する。そこで、補正角算出部27c
2が、差分ΔXと移動距離yとに基づいて、進行方向に対する補正角Δθを算出する。指令値算出部27c
3は、移動ロボット30を並進速度指令値Vrefおよび角速度指令値ωrefで移動させつつ、進行方向を反時計回りに補正角Δθ分変更させるための角速度指令値ωl,ωrを算出して駆動部31を制御する。このように、駆動制御部27cが駆動部31を制御することにより、通路の境界40-1から一定距離Xrefを隔てた位置に定められた目標経路L上を移動ロボット30が移動することができる。
【0068】
なお、
図15で示した例では、ビーコン11が境界40-1上に配置される場合を説明した。しかし、境界40上にビーコン11を配置できない場合には、ビーコン11が配置された位置と境界40との差分が通路距離(D
1,D
2,・・・,D
m,・・・,D
M)としてテーブルに記憶される。このような状態の一例を
図16に示す。ここで、
図16は、境界40(40-1)上にビーコン11(11-m)を配置できない場合における、第二の実施形態に係る移動ロボット30が通常動作を実行する際の動作例を示す図である。この場合、補正角算出部27c
2は、補正角Δθを算出する際に、通路距離D
mを用いて一定距離Xref又は差分ΔXのいずれかを補正する。
【0069】
以上説明した駆動制御方法によって移動ロボット30が移動経路に沿って移動していくと、最終的には、目標位置に近いビーコンID「M」を有するビーコン11の近傍に移動ロボット30が近づいていき、停止制御が実行されることとなる。
【0070】
次に、
図14および
図17を参照図面に加えて、第二の実施形態に係る移動ロボット30の制御システムにおける具体的な処理内容を説明する。ここで、
図14は、第二の実施形態に係る移動ロボット30が初期動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。また、
図17は、第二の実施形態に係る移動ロボット30が通常動作を実行する際の動作説明をするための図であり、制御部による制御処理内容を示すフローチャートである。
【0071】
まず、
図14に示される第二の実施形態に係る移動ロボット30の初期動作において実行される初期動作工程(Process α)では、算出部26が、ビーコン11-1に設定されたID情報を取得して、移動ロボット30からビーコン11-1までの距離Zと、移動ロボット30の進行方向を基準としてビーコン11-1が位置する方向θとを算出し、これら距離Zと方向θを示す情報を制御部27に送信する。第二の実施形態におけるID情報は、各ビーコン11を一意に識別するためのビーコンIDである。ビーコンIDを受け取った制御部27では、初期状態で設定されているビーコンIDが検出できたか否かを判定する(ステップS201)。初期状態において、ビーコン選択部27bは、テーブルの最初の行に記憶されているビーコンIDを、目標とするビーコン11-1のビーコンIDとして選択する。
【0072】
ビーコン11-1を検出できない場合(ステップS201のNO)、制御部27は、ビーコン11-1を検出できなかったことを示すエラー信号を出力する。駆動制御部27cは、エラー信号に応じて、駆動部31に駆動輪32,33を停止させる(ステップS211)。ビーコン選択部27bは、エラー信号に応じて、ビーコン11-1が検出できないことを示すエラー情報を外部へ出力し(ステップS212)、移動制御処理を終了させる。なお、エラー情報の出力は、移動ロボット30に備えられる出力装置、例えばスピーカやディスプレイを用いて行われる。
【0073】
ステップS201において、ビーコン11-1を検出できた場合(ステップS201のYES)、ビーコン選択部27bおよび駆動制御部27cは、ビーコン検出部22の算出部26からビーコン情報を取得することとなる(ステップS202)。このビーコン情報は、移動ロボット30からビーコン11-1までの距離Zと、移動ロボット30の進行方向を基準としてビーコン11-1が位置する方向θとを示す情報である。
【0074】
距離Zと方向θからなるビーコン情報を取得した制御部27では、通過位置算出部27c1が距離Zおよび方向θから距離xを算出する(ステップS203)。なお、距離xは、境界40-1に沿って配置されたビーコン11-1と移動ロボット30の現在位置(スタート位置)との移動経路に対して直交する方向の距離である。また、制御部27では、算出した距離xと、目標経路Lを規定するために予め設定されたビーコン11-1からの距離である一定距離Xrefに基づいて、当該距離xと一定距離Xrefとの差である差分δxを算出する(ステップS204)。
【0075】
続いて、ステップS204で算出された差分δxの情報は、制御部27の通過位置算出部27c1から補正角算出部27c2を経由して指令値算出部27c3に伝達される。このとき、補正角算出部27c2は稼働せずに、差分δxの情報を受け渡すだけである。指令値算出部27c3は、受け取った差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行する(ステップS205)。またこのとき、指令値算出部27c3は、PID制御に基づいて差分δxを0(ゼロ)とするように角速度指令値ωl,ωrを算出することで、駆動部31に対する駆動制御が実行される。
【0076】
制御部27の指令値算出部27c3が差分δxを0(ゼロ)とするように駆動部31に対する駆動制御を実行した後、制御部27は、差分δxが0(ゼロ)になったか否かを確認し続ける(ステップS206)。そして、差分δxが0(ゼロ)になっていない場合(ステップS206のNO)、制御部27は、PID制御に基づく駆動部31に対する駆動制御の実行を継続する(ステップS207)。
【0077】
制御部27によるPID制御に基づく駆動部31に対する駆動制御の実行が継続された後、差分δxが0(ゼロ)になった場合(ステップS206のYES)、制御部27は、PID制御に基づく初期動作工程(Process α)を終了し、続けて
図17で示す通常動作が実行されることとなる。
【0078】
以上、
図14を用いて説明した初期動作工程(Process α)によれば、第二の実施形態に係る移動ロボット30は、PID制御の作用によって通路内で所望の目標経路Lに早く誘導されることとなる(
図13参照)。かかる動作制御方法は、例えば、工場内などで、移動ロボット30と人が通路を共有する場合に、移動ロボット30が通路を早く空けることができるので、人の通行を移動ロボット30が阻害することがなく、通路内で人が移動ロボット30の通過を待たなければならないといった状況が発生することを好適に防止できるという効果がある。
【0079】
上述したように、移動ロボット30の移動が開始されると、まず初めに、
図14を用いて説明した初期動作工程(Process α)が実行される。この初期動作工程(Process α)の実行によって、移動ロボット30が目標経路L上に移動し、通常動作に移行する。すなわち、
図17で示すように、初期動作工程(Process α)が終了すると、算出部26は、ビーコン11に設定されたID情報を取得し、制御部27に送信する。第二の実施形態におけるID情報は、各ビーコン11を一意に識別するためのビーコンIDである。ビーコンIDを受け取った制御部27では、初期状態で設定されているビーコンIDが検出できたか否かを判定する(ステップS301)。初期状態において、ビーコン選択部27bは、テーブルの最初の行に記憶されているビーコンIDを、目標とするビーコン11のビーコンIDに選択する。
【0080】
ビーコン11を検出できない場合(ステップS301のNO)、制御部27は、ビーコン11を検出できなかったことを示すエラー信号を出力する。駆動制御部27cは、エラー信号に応じて、駆動部31に駆動輪32,33を停止させる(ステップS321)。ビーコン選択部27bは、エラー信号に応じて、ビーコン11が検出できないことを示すエラー情報を外部へ出力し(ステップS322)、移動制御処理を終了させる。なお、エラー情報の出力は、移動ロボット30に備えられる出力装置、例えばスピーカやディスプレイを用いて行われる。
【0081】
ステップS301において、ビーコン11を検出できた場合(ステップS301のYES)、ビーコン選択部27bおよび駆動制御部27cは、ビーコン検出部22の算出部26からビーコン情報を取得することとなる(ステップS302)。ビーコン選択部27bは、ビーコン情報により示されるビーコン11が最終ビーコンであるか否かをテーブルに基づいて判定する(ステップS303)。
【0082】
ステップS303において、ビーコン11が最終ビーコンである場合(ステップS303のYES)、駆動制御部27cは、ビーコン情報により示されるビーコン11までの距離Zが切替範囲内であるか否かを判定する(ステップS331)。ビーコン11までの距離Zが切替範囲内である場合(ステップS331のYES)、駆動制御部27cは、駆動部31に駆動輪32,33を停止させ(ステップS332)、移動制御処理を終了させる。
【0083】
ステップS331において、ビーコン11までの距離Zが切替範囲内でない場合(ステップS331のNO)、駆動制御部27cは、処理をステップS308へ進める。
【0084】
ステップS303において、ビーコン11が最終ビーコンでない場合(ステップS303のNO)、駆動制御部27cは、ビーコン情報により示されるビーコン11までの距離Zが切替範囲内であるか否かを判定する(ステップS304)。ビーコン11までの距離Zが切替範囲内でない場合(ステップS304のNO)、駆動制御部27cは、処理をステップS308へ進める。
【0085】
ステップS304において、ビーコン11までの距離Zが切替範囲内である場合(ステップS304のYES)、駆動制御部27cは、ビーコン11の属性情報に方向転換の指示があるか否かをテーブルに基づいて判定する(ステップS305)。方向転換の指示がない場合(ステップS305のNO)、駆動制御部27cは、処理をステップS307へ進める。
【0086】
方向転換の指示がある場合(ステップS305のYES)、駆動制御部27cは、ビーコン11の回転情報をテーブルから取得し、移動ロボット30の進行方向を回転情報の示す角度変更をする制御を、駆動部31に対して行う(ステップS306)。ビーコン選択部27bは、現在目標としているビーコン11の次に目標とするビーコン11のビーコンIDをテーブルから取得する。ビーコン選択部27bは、取得したビーコンIDのビーコン11をビーコン検出部22へ出力することにより、取得したビーコンIDのビーコン11を新たな目標に選択し(ステップS307)、処理をステップS301へ戻す。
【0087】
ステップS308において、補正角算出部27c2は、ビーコン検出部22から取得したビーコン情報に基づいて算出された差分ΔXが許容範囲内であるか否かを判定する(ステップS308)。差分ΔXに対する許容範囲は、移動ロボット30に対して要求される移動の精度、ビーコン検出部22におけるビーコン11の検出の精度、モータ34,35の制御における精度などに基づいて予め定められる。差分ΔXが許容範囲内でない場合(ステップS308のNO)、補正角算出部27c2は、差分ΔXに基づいて補正角Δθを算出する(ステップS309)。差分ΔXが許容範囲内である場合(ステップS308のYES)、補正角算出部27c2は、補正角Δθを0とする(ステップS310)。
【0088】
その後、指令値算出部27c3は、駆動輪32,33を駆動するモータ34,35それぞれの角速度の測定値ωl’,ωr’を取得する(ステップS311)。指令値算出部27c3は、並進速度指令値Vrefと、角速度指令値ωrefと、角速度の測定値ωl’,ωr’と、補正角Δθとに基づいて、モータ34,35に対する角速度指令値ωl,ωrを算出する(ステップS312)。指令値算出部27c3は、角速度指令値ωl,ωrを駆動部31へ出力し(ステップS313)、処理をステップS301へ戻す。
【0089】
以上説明した初期動作工程(Process α)からステップS332までの各処理を含む制御処理が制御部27によって行われることにより、ビーコン11までの距離Zおよび方向θを逐次取得し、進行方向を補正できる。このような制御処理で進行方向が補正されることにより、移動ロボット30は、境界40から一定距離Xrefを隔てた移動経路を移動することができ、複数のビーコン11に基づいて移動する際の移動距離を削減できる。
【0090】
また、上述した第二の実施形態に係る移動ロボット30の制御システムによれば、広い設置場所を必要としない比較的コンパクトなビーコン11を採用した場合であっても、その識別および距離計測が精度よく可能である。さらに、上述した第二の実施形態に係る移動ロボット30の制御システムによれば、安価なシステム構成とすることができるので、汎用性が高い移動ロボットの制御システムを提供することが可能となる。
【0091】
以上、本発明の好適な実施形態について説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態には、多様な変更又は改良を加えることが可能である。
【0092】
例えば、上述した第二の実施形態では、制御部27によるPID制御に基づく駆動部31に対する駆動制御の実行が初期動作工程(Process α)として行われる例を示した。しかし、移動ロボット30に対して差分δxが0(ゼロ)となるようにPID制御を行う場面は、初期動作だけではなく、他の動作を行う際にも適用可能である。具体的には、
図18は、移動ロボット30が移動する通路に交差点が存在する場合のビーコン11の配置例と目標経路Lの状況を示す図であるが、
図18に示すように、移動ロボット30から見て交差点の遠方側の2つの角のうち進行方向の変更先側の1つの角にビーコン11-mが設置されている場合、移動ロボット30は、PID制御を行わない通常動作の場合には、ビーコン11-mまでの距離Zが切替範囲内になる位置まで移動し、回転情報で示される角度の旋回により進行方向の変更を行うので、図中破線で示す目標経路Lに沿って移動を行うことになる。しかし、交差点に進入する直前の位置からPID制御を行うと、図中実線で示すような経路をたどって移動ロボット30が右折移動を行うので、効率的な移動経路で移動ロボット30の動作制御を行うことが可能となる。
【0093】
また例えば、上述した第二の実施形態では、制御部27によるPID制御に基づく駆動部31に対する駆動制御の実行が初期動作工程(Process α)として行われる例が示されており、この初期動作工程(Process α)では、移動ロボット30に対して差分δxが0(ゼロ)となるようにPID制御を行う場合が例示されていた。しかしながら、本発明に係るPID制御については、差分δxが0(ゼロ)となるようにする場合の他、差分δxが所定の閾値になるように設定してPID制御を行うようにしてもよい。このような変形例は、上述した第一の実施形態に対しても適用可能である。つまり、本発明において、初期動作から通常動作への移行制御を含む移動ロボットの動作制御全般については、様々な条件で実行することが可能である。
【0094】
また例えば、上述した第一および第二の実施形態では、ビーコン11に赤外線の信号を用いたが、本発明の範囲はこれに限定されるものではなく、信号を発しないマーカーを用いる形式のものを本発明に係る被検出体として採用しても、上述した第一および第二の実施形態と同様の効果を得ることができる。
【0095】
また例えば、信号を発信する複数のビーコン11などの発信器に代えて、信号を発信しない複数のマーカーを用いてもよい。マーカーを用いる場合、ビーコン検出部22に代えてマーカー検出部が用いられる。マーカー検出部は、各マーカーに設けられた幾何学的な図形又は色の組み合わせを検出することにより、ビーコン検出部22と同様に動作してもよい。幾何学的な図形又は色の組み合わせにマーカーを識別するIDを含めてもよい。幾何学的な図形として、例えばQRコード(登録商標)を用いてもよい。
【0096】
また例えば、能動的に信号を発信するビーコン11に代えて、移動ロボット30から発信される信号に応じて応答信号を発信するRFID素子を用いたマーカーや、移動ロボット30から発信される信号を反射する素子を用いたマーカーが配置されてもよい。受動的な動作を行うマーカーを用いる場合には、所定の信号を発信する発信器が移動ロボット30に設けられる。このように、ビーコン11やマーカーなどの被検出体は、移動ロボット30の相対的な位置を検出できるものであればよい。
【0097】
ここで、本発明に係る被検出体にマーカーを用いた場合の具体例を、
図19および
図20を用いて説明する。
図19は、本発明に係る移動ロボットに適用可能な画像処理装置のシステム構成例を示すブロック図である。また、
図20は、本発明に係る移動ロボットに適用可能な画像処理装置が撮像したマーカーの撮像データを2値化処理して得られた2値化画像を示すとともに、この2値化画像を走査してマーカーに設定されたID情報を得るための走査方法を説明するための図である。
【0098】
図19に示す画像処理装置110は、被検出体としてのマーカー111と、このマーカー111を読み取ることで所望の情報を取得し、処理を実行する画像処理装置本体121とを有して構成されている。
【0099】
マーカー111は、二次元平面上に、正方形からなる複数のセル112を配置して構成されるものである。複数のセル112は、例えば、赤外LED光を反射可能な第一セルとしての白色セル112aと、赤外LED光を反射不能な第二セルとしての黒色セル112bとから構成されている。
図19で示した実施形態の場合、14個の白色セル112aと、26個の黒色セル112bとが、5列8行の行列配置で二次元平面上に配置されている。また、このマーカー111では、マーカー111の外周部を取り囲むように配置された22個の黒色セル112bは情報を含むものではなく、マーカー111と空間とを区分けして読み取りの誤認識を防止するための単なる境界として機能する部分である。すなわち、
図19で示すマーカー111において被検出体として機能する箇所は、符号Aで示す3列と、符号Bで示す6行とからなる3列6行、18個のセル112の行列配置によって構成される部分である。
【0100】
マーカー111において被検出体として機能する3列6行の行列配置として構成される箇所は、例えば最上段の1行目に位置する符号B1で示す箇所が「検出スタート位置」として構成され、最下段の6行目に位置する符号B3で示す箇所が「検出エンド位置」として構成され、これら検出スタート位置B1と検出エンド位置B3で挟まれた2行目から5行目までの4行で構成される符号B2で示す箇所が「ID情報付与位置」として構成されている。
【0101】
検出スタート位置B
1と検出エンド位置B
3については、例えば、
図19の紙面左側から右側に向けて、「白、黒、白」の順でセル112が配置されており、白を「1」、黒を「0(ゼロ)」とするバイナリーコードで表現すると「1、0、1」と示すことができる。この「1、0、1」の情報を画像処理装置本体121側に認識させることで、マーカー111の最初の行と最終の行を読み取ることに成功したことが認識できる。すなわち、「1、0、1」で示される検出スタート位置B
1と検出エンド位置B
3を認識することで、この間に存在するであろう4行のID情報付与位置B
2が正確に認識できることとなる。
【0102】
また、4行のID情報付与位置B2については、上の行から下の行に向けて「白、黒、白」、「白、白、白」、「白、黒、白」、「白、白、白」の順でセル112が配置されており、これらをバイナリーコードで表現すると「1、0、1」、「1、1、1」、「1、0、1」、「1、1、1」と示すことができる。このような3ビット×4行からなる構成の情報をマーカー111に持たせることにより、合計12ビットのID情報をID情報付与位置B2に対して付与することが可能となる。そして、この12ビットの情報を画像処理装置本体121側に認識させることで、様々な処理が実行可能となる。
【0103】
以上のように、検出スタート位置B1と検出エンド位置B3の読み取りが成功し、かつ、それらの間に存在するID情報付与位置B2を読み取ることで、ID情報を誤認識なく取得することが可能となる。
【0104】
なお、複数のセル112のうち、白色セル112aは、後述する照射部123から照射される赤外LED光を反射して、後述する撮像部124,125にその反射光を撮像させることのできる材料にて構成されている。赤外LED光を反射する材料としては、アルミニウム箔や酸化チタンの薄膜等が用いられる。一方、黒色セル112bは、後述する照射部123から照射される赤外LED光を反射せず、後述する撮像部124,125で撮像した画像において黒色セル112bの箇所が暗部となるようにすることのできる材料にて構成されている。赤外LED光を反射しない材料としては、赤外カットフィルムや偏光フィルム、赤外線吸収材、黒色フェルト等が用いられる。つまり、
図19および
図20で示す実施形態では、投光部としての照射部123から出た赤外LED光をマーカー111の白色セル112aにて反射し、受光部としての撮像部124,125で受光して画像を撮像する。このとき、被検出体であるマーカー111の黒色セル112bでは、受光部である撮像部124,125に対する反射光を減少させるので、その反射量の減少をとらえて検出する所謂回帰反射形の画像取得構成が採用されている。
【0105】
図19で示す実施形態に係る画像処理装置本体121は、マーカー検出部122と、制御部127を備えて構成することができる。さらに、マーカー検出部122は、照射部123と、2つの撮像部124,125と、算出部126を備えることができる。
【0106】
照射部123は、赤外LED光をマーカー111に対して照射することができ、マーカー111側から反射された反射光を2つの撮像部124,125によって読み取らせるために用いられる。照射部123から照射される赤外LED光は、工場内などの暗所や可視光の強い場所等であってもマーカー111の撮像が可能である。
【0107】
2つの撮像部124,125は、マーカー検出部122の左右に配置された2つのカメラによって構成されている。これら2つの撮像部124,125は、照射部123から照射された赤外LED光がマーカー111を構成する白色セル112aと黒色セル112bに照射された後、白色セル112aから反射された光を2つのカメラで撮像する。なお、2つの撮像部124,125では、それぞれ単独の画像が撮影され、2つの撮像部124,125を用いて取得された撮像データは、算出部126に送信される。
【0108】
算出部126は、2つの撮像部124,125から送信された撮像データに基づき三角測量による演算を行うことで、画像処理装置本体121に対してマーカー111がどの様な距離(相対距離)と方向(相対角度)に位置するのかを算出することが可能である。
【0109】
最後に、算出部126の走査・演算方法について、
図20を用いて説明する。算出部126は、2つの撮像部124,125によって撮像された撮像データを2つの撮像部124,125から取得した後、得られた撮像データを2値化処理することで、
図20に示す2値化画像を得る。なお、この2値化処理の段階で、白色セル112aから反射された赤外LED光の反射光と、黒色セル112bから反射されなかった箇所とが、白黒の2値化処理によって明確化される。
【0110】
上述した画像処理装置110を本発明に係る移動ロボットに適用することで、被検出体にマーカーを用いた移動ロボットを実現することができる。このように、本発明に係る移動ロボットは、多様な変形形態を取ることができる。
【0111】
また例えば、上述した第一および第二の実施形態では、ビーコン検出部22は、ビーコンの選択部から入力されるビーコンIDのビーコン11を検出する動作を説明した。しかし、ビーコン検出部22は、検出した全てのビーコン11のビーコン情報をそれぞれ算出し、算出した各ビーコン情報を制御部27へ出力してもよい。この場合、ビーコンの選択部は、ビーコン選択部27bから出力される指示に基づいて、複数のビーコン情報から目標とするビーコン11のビーコン情報を選択する。
【0112】
また例えば、上述の移動ロボット30は、内部にコンピュータシステムを有していてもよい。その場合、移動ロボット30に備えられる制御部27が行う処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、各機能部の処理が行われることになる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【0113】
なお、上記の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0114】
その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【0115】
11(11-1,11-2,11-m) ビーコン(被検出体)、22 ビーコン検出部、24,25 赤外線センサ(検出部)、26 算出部、27 制御部、27a 移動経路記憶部、27b ビーコン選択部、27c 駆動制御部、27c1 通過位置算出部、27c2 補正角算出部、27c3 指令値算出部、30 移動ロボット、31 駆動部、32,33 駆動輪、34,35 モータ、36 モータ制御部、40(40-1,40-2) 境界、Z (ビーコンまでの)距離、θ 方向、x 距離(ビーコン通過距離)、y 移動距離(ビーコン横までの距離)、Xref 一定距離、Ppass 通過点、δx,ΔX 差分、Δθ 補正角、L 目標経路、110 画像処理装置、111 マーカー、112 セル、112a 白色セル、112b 黒色セル、121 画像処理装置本体、122 マーカー検出部、123 照射部、124,125 撮像部、126 算出部、127 制御部。