(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】ロボット制御システム、ロボット制御方法、及びプログラム
(51)【国際特許分類】
G05D 1/43 20240101AFI20240717BHJP
【FI】
G05D1/43
(21)【出願番号】P 2021184499
(22)【出願日】2021-11-12
【審査請求日】2023-07-11
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】渡邊 裕太
(72)【発明者】
【氏名】小田 志朗
(72)【発明者】
【氏名】吉川 恵
(72)【発明者】
【氏名】倉橋 幸慎
(72)【発明者】
【氏名】松井 毅
【審査官】大古 健一
(56)【参考文献】
【文献】特開2009-110495(JP,A)
【文献】特開2012-068895(JP,A)
【文献】特開2021-172153(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/87
(57)【特許請求の範囲】
【請求項1】
マップを参照して、前記マップに含まれる
第1の通路を
第1の通路方向に自律移動する移動ロボットを制御するロボット制御システムであって、
測距センサを用いて測定された周辺物体までの距離を
繰り返し取得し、
前記移動ロボットの位置から前記周辺物体までの距離に応じて、前記マップ上での周辺物体の位置を
検出位置として特定し、
前記マップ上に前記
検出位置を含むように設定される設定領域であって、前記
第1の通路方向において前記
検出位置から第1の距離だけ離れた位置を第1端点とし、前記
第1の通路の
第1の幅方向において前記
検出位置から前記第1の距離よりも短い第2の距離だけ離れた位置を第2端点とする
第1の設定領域を設定し、
前記マップ上の前記
第1の設定領域に、前記移動ロボットの移動を制限するための制限情報を付与し、
前記移動ロボットが前記制限情報に
応じた経路に沿って移動するように制御し、
前記第1の設定領域は、前記第1の通路方向を長手方向とし、前記第1の幅方向を短手方向とする形状であり、
前記制限情報が、前記測距センサの測定結果に応じて順次加算されて、更新されるコストであり、
前記周辺物体までの距離の変化から、前記第1の通路方向における前記周辺物体の移動方向を推定し、
前記移動方向の前方側において、前記検出位置から前記第1の距離だけ離れた点を前記第1端点とし、
前記移動方向の後方側において、前記検出位置から第1の距離よりも短い第3の距離だけ離れた点を第3端点とする設定領域を設定し、
前記第1の通路方向と異なる方向である第2の通路方向に沿った第2の通路が前記第1の通路とが交わる又は合流する交差点が前記マップに登録されており、
前記周辺物体の検出位置が前記交差点にある場合、前記検出位置に基づいて、前記周辺物体を含むように第2の設定領域を設定し、
前記第2の設定領域は、前記第2の通路方向を長手方向とし、前記第2の通路の第2の幅方向を短手方向とする形状であり、
前記マップ上の前記第2の設定領域に、前記移動ロボットの移動を制限するためのコストを付与し、
前記第1の設定領域及び第2の設定領域は周辺物体の検出位置を基準として、周辺物体の種類に応じた平面形状及びサイズで設定される固定領域であり、
前記周辺物体の前記検出位置が検出されると、前記第1の設定領域又は前記第2の設定領域に含まれるグリッドでは前記コストが増加し、前記第1の設定領域又は前記第2の設定領域の外側では前記コストが減少するように、前記コストが更新される、
ロボット制御システム。
【請求項2】
前記第1の設定領域、及び前記第2の設定領域において、前記コストは一定値である、あるいは、前記周辺物体に近いほど付与される前記コストが高くなり、
前記周辺物体の移動速度が速くなるほどコストが高くなっていく、請求項1に記載のロボット制御システム。
【請求項3】
前記交差点が、三差路である場合、
平面視において、前記第1の通路から前記第2の通路が延びる方向を延在方向とし、前記延在方向と反対の方向を反対方向とすると、
前記検出位置から前記第2の設定領域の前記延在方向側の第4の端点までの第4の距離が、前記検出位置から前記第2の設定領域の前記反対方向側の第5の端点までの第5の距離が長くなっている請求項1、又は2に記載のロボット制御システム。
【請求項4】
前記測距センサが3次元測距センサと、前記3次元測距センサよりも遠距離を測距可能な2次元測距センサとを含んでいる請求項
1~3のいずれか1項に記載のロボット制御システム。
【請求項5】
前記周辺物体が前記移動ロボットの周辺にいる人又は他の移動ロボットであ
り、
前記周辺物体が人である場合と、他の前記移動ロボットである場合とで、前記第1の設定領域の平面形状が異なっている、請求項
1~4のいずれか1項に記載のロボット制御システム。
【請求項6】
前記第1の設定領域及び第2の設定領域が、楕円状又は長方形状の固定領域である請求項1~5のいずれか1項に記載のロボット制御システム。
【請求項7】
マップを参照して、前記マップに含まれる
第1の通路を
第1の通路方向に自律移動する移動ロボットを制御するロボット制御方法であって、
測距センサを用いて測定された周辺物体までの距離を繰り返し取得し、
前記移動ロボットの位置から前記周辺物体までの距離に応じて、前記マップ上での
周辺物体の位置を
検出位置として特定し、
前記マップ上に前記
検出位置を含むように設定される設定領域であって、前記
第1の通路方向において前記
検出位置から第1の距離だけ離れた位置を第1端点とし、前記
第1の通路の
第1の幅方向において前記
検出位置から前記第1の距離よりも短い第2の距離だけ離れた位置を第2端点とする
第1の設定領域を設定し、
前記マップ上の前記第1の設定領域に、前記移動ロボットの移動を制限するための制限情報を付与し、
前記移動ロボットが前記制限情報に
応じた経路に沿って移動するように制御し、
前記第1の設定領域は、前記第1の通路方向を長手方向とし、前記第1の幅方向を短手方向とする形状であり、
前記制限情報が、前記測距センサの測定結果に応じて順次加算されて、更新されるコストであり、
前記周辺物体までの距離の変化から、前記第1の通路方向における前記周辺物体の移動方向を推定し、
前記移動方向の前方側において、前記検出位置から前記第1の距離だけ離れた点を前記第1端点とし、
前記移動方向の後方側において、前記検出位置から第1の距離よりも短い第3の距離だけ離れた点を第3端点とする設定領域を設定し、
前記第1の通路方向と異なる方向である第2の通路方向に沿った第2の通路が前記第1の通路とが交わる又は合流する交差点が前記マップに登録されており、
前記周辺物体の検出位置が前記交差点にある場合、前記検出位置に基づいて、前記周辺物体を含むように第2の設定領域を設定し、
前記第2の設定領域は、前記第2の通路方向を長手方向とし、前記第2の通路の第2の幅方向を短手方向とする形状であり、
前記マップ上の前記第2の設定領域に、前記移動ロボットの移動を制限するためのコストを付与し、
前記第1の設定領域及び第2の設定領域は周辺物体の検出位置を基準として、周辺物体の種類に応じた平面形状及びサイズで設定される固定領域であり、
前記周辺物体の前記検出位置が検出されると、前記第1の設定領域又は前記第2の設定領域に含まれるグリッドでは前記コストが増加し、前記第1の設定領域又は前記第2の設定領域の外側では前記コストが減少するように、前記コストが更新される、
ロボット制御方法。
【請求項8】
前記第1の設定領域、及び前記第2の設定領域において、前記コストは一定値である、あるいは、前記周辺物体に近いほど付与される前記コストが高くなり、
前記周辺物体の移動速度が速くなるほどコストが高くなっていく、請求項7に記載のロボット制御方法。
【請求項9】
前記交差点が、三差路である場合、
平面視において、前記第1の通路から前記第2の通路が延びる方向を延在方向とし、前記延在方向と反対の方向を反対方向とすると、
前記検出位置から前記第2の設定領域の前記延在方向側の第4の端点までの第4の距離が、前記検出位置から前記第2の設定領域の前記反対方向側の第5の端点までの第5の距離が長くなっている請求項7、又は8に記載のロボット制御方法。
【請求項10】
前記測距センサが3次元測距センサと、前記3次元測距センサよりも遠距離を測距可能な2次元測距センサとを含んでいる請求項
7~9のいずれか1項に記載のロボット制御方法。
【請求項11】
前記周辺物体が前記移動ロボットの周辺にいる人又は他の移動ロボットであ
り、
前記周辺物体が人である場合と、他の前記移動ロボットである場合とで、前記第1の設定領域の平面形状が異なっている、請求項7~10のいずれか1項に記載のロボット制御方法。
【請求項12】
前記第1の設定領域及び第2の設定領域が、楕円状又は長方形状の固定領域である請求項7~11のいずれか1項に記載のロボット制御方法。
【請求項13】
マップを参照して、前記マップに含まれる
第1の通路を
第1の通路方向に自律移動する移動ロボットを制御するロボット制御方法をコンピュータに実行させるプログラムであって、
前記ロボット制御方法は、
測距センサを用いて測定された周辺物体までの距離を繰り返し取得し、
前記移動ロボットの位置から前記周辺物体までの距離に応じて、前記マップ上での
周辺物体の位置を
検出位置として特定し、
前記マップ上に前記
検出位置を含むように設定される設定領域であって、前記
第1の通路方向において前記
検出位置から第1の距離だけ離れた位置を第1端点とし、前記
第1の通路の
第1の幅方向において前記
検出位置から前記第1の距離よりも短い第2の距離だけ離れた位置を第2端点とする
第1の設定領域を設定し、
前記マップ上の前記
第1の設定領域に、前記移動ロボットの移動を制限するための制限情報を付与し、
前記移動ロボットが前記制限情報に
応じた経路に沿って移動するように制御し、
前記第1の設定領域は、前記第1の通路方向を長手方向とし、前記第1の幅方向を短手方向とする形状であり、
前記制限情報が、前記測距センサの測定結果に応じて順次加算されて、更新されるコストであり、
前記周辺物体までの距離の変化から、前記第1の通路方向における前記周辺物体の移動方向を推定し、
前記移動方向の前方側において、前記検出位置から前記第1の距離だけ離れた点を前記第1端点とし、
前記移動方向の後方側において、前記検出位置から第1の距離よりも短い第3の距離だけ離れた点を第3端点とする設定領域を設定し、
前記第1の通路方向と異なる方向である第2の通路方向に沿った第2の通路が前記第1の通路とが交わる又は合流する交差点が前記マップに登録されており、
前記周辺物体の検出位置が前記交差点にある場合、前記検出位置に基づいて、前記周辺物体を含むように第2の設定領域を設定し、
前記第2の設定領域は、前記第2の通路方向を長手方向とし、前記第2の通路の第2の幅方向を短手方向とする形状であり、
前記マップ上の前記第2の設定領域に、前記移動ロボットの移動を制限するためのコストを付与し、
前記第1の設定領域及び第2の設定領域は周辺物体の検出位置を基準として、周辺物体の種類に応じた平面形状及びサイズで設定される固定領域であり、
前記周辺物体の前記検出位置が検出されると、前記第1の設定領域又は前記第2の設定領域に含まれるグリッドでは前記コストが増加し、前記第1の設定領域又は前記第2の設定領域の外側では前記コストが減少するように、前記コストが更新される、
プログラム。
【請求項14】
前記第1の設定領域、及び前記第2の設定領域において、前記コストは一定値である、あるいは、前記周辺物体に近いほど付与される前記コストが高くなり、
前記周辺物体の移動速度が速くなるほどコストが高くなっていく、請求項13に記載のプログラム。
【請求項15】
前記交差点が、三差路である場合、
平面視において、前記第1の通路から前記第2の通路が延びる方向を延在方向とし、前記延在方向と反対の方向を反対方向とすると、
前記検出位置から前記第2の設定領域の前記延在方向側の第4の端点までの第4の距離が、前記検出位置から前記第2の設定領域の前記反対方向側の第5の端点までの第5の距離が長くなっている請求項13、又は14に記載のプログラム。
【請求項16】
前記測距センサが3次元測距センサと、前記3次元測距センサよりも遠距離を測距可能な2次元測距センサとを含んでいる請求項
13~15のいずれか1項に記載のプログラム。
【請求項17】
前記周辺物体が前記移動ロボットの周辺にいる人又は他の移動ロボットであ
り、
前記周辺物体が人である場合と、他の前記移動ロボットである場合とで、前記第1の設定領域の平面形状が異なっている、請求項13~16のいずれか1項に記載のプログラム。
【請求項18】
前記第1の設定領域及び第2の設定領域が、楕円状又は長方形状の固定領域である請求項13~17のいずれか1項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御システム、ロボット制御方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、搬送ロボットを備えた自律移動システムが開示されている。特許文献1では、搬送ロボットが、周囲の障害物を検知するセンサを備えている。搬送ロボットには、進入禁止空間及び進入制限空間が設定されている。センサが進入制限空間に進入する障害物を検知したら、搬送ロボットは、移動速度を低下させたり、回避動作を実行したりする。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような搬送ロボットでは、より効率よく搬送することが望まれる。例えば、搬送ロボットの周囲に人がいる場合、人を回避して移動することが望まれる。
【0005】
本開示は、このような問題を解決するためになされたものであり、ロボットをより効率よく制御することができるロボット制御システム、ロボット制御方法、及びプログラムを提供するものである。
【課題を解決するための手段】
【0006】
本実施の形態にかかるロボット制御システムは、マップを参照して、前記マップに含まれる通路を通路方向に自律移動する移動ロボットを制御するロボット制御システムであって、測距センサを用いて測定された周辺物体までの距離を取得し、前記移動ロボットの位置から前記周辺物体までの距離に応じて、前記マップ上での周辺物体の位置を特定し、前記マップ上に前記周辺物体を含むように設定される設定領域であって、通路方向において前記周辺物体から第1の距離だけ離れた位置を第1端点とし、前記通路の幅方向において前記周辺物体の位置から前記第1の距離よりも短い第2の距離だけ離れた位置を第2端点とする設定領域を設定し、前記マップ上の前記設定領域に、前記移動ロボットの移動を制限するための制限情報を付与し、前記制限情報に応じて移動するように制御する。
【0007】
上記のロボット制御システムにおいて、前記設定領域は、前記通路方向のサイズが、前記幅方向のサイズよりも大きくなっていてもよい。
【0008】
上記のロボット制御システムにおいて、前記周辺物体までの距離の変化から、前記通路方向における前記周辺物体の移動方向を推定し、前記移動方向の前方側において、前記周辺物体の位置から前記第1の距離だけ離れた点を第1端点とし、前記移動方向の後方側において、前記周辺物体の位置から第1の距離よりも短い第3の距離だけ離れた点を第3端点とする設定領域を設定してもよい。
【0009】
上記のロボット制御システムにおいて、前記制限情報が、前記測距センサの測定結果に応じて更新されるコストであってもよい。
【0010】
上記のロボット制御システムにおいて、前記測距センサが3次元測距センサと、前記3次元測距センサよりも遠距離を測距可能な2次元測距センサとを含んでいてもよい。
【0011】
上記のロボット制御システムにおいて、前記周辺物体が前記移動ロボットの周辺にいる人又は他の移動ロボットであってもよい。
【0012】
本実施の形態にかかるロボット制御方法は、マップを参照して、前記マップに含まれる通路を通路方向に自律移動する移動ロボットを制御するロボット制御システムであって、測距センサを用いて測定された周辺物体までの距離を取得し、前記移動ロボットの位置から前記周辺物体までの距離に応じて、前記マップ上での周辺物体の位置を特定し、前記マップ上に前記周辺物体を含むように設定される設定領域であって、通路方向において前記周辺物体から第1の距離だけ離れた位置を第1端点とし、前記通路の幅方向において前記周辺物体の位置から前記第1の距離よりも短い第2の距離だけ離れた位置を第2端点とする設定領域を設定し、前記マップ上の前記設定領域に、前記移動ロボットの移動を制限するための制限情報を付与し、前記制限情報に応じて移動するように制御する。
【0013】
上記のロボット制御方法において、前記設定領域は、前記通路方向のサイズが、前記幅方向のサイズよりも大きくなっていてもよい。
【0014】
上記のロボット制御方法において、前記周辺物体までの距離の変化から、前記通路方向における前記周辺物体の移動方向を推定し、前記移動方向の前方側において、前記周辺物体の位置から前記第1の距離だけ離れた点を第1端点とし、前記移動方向の後方側において、前記周辺物体の位置から第1の距離よりも短い第3の距離だけ離れた点を第3端点とする設定領域を設定してもよい。
【0015】
上記のロボット制御方法において、前記制限情報が、前記測距センサの測定結果に応じて更新されるコストであってもよい。
【0016】
上記のロボット制御方法において、前記測距センサが3次元測距センサと、前記3次元測距センサよりも遠距離を測距可能な2次元測距センサとを含んでいてもよい。
【0017】
上記のロボット制御方法において、前記周辺物体が前記移動ロボットの周辺にいる人又は他の移動ロボットであってもよい。
【0018】
上記のプログラムにおいて、前記設定領域は、前記通路方向のサイズが、前記幅方向のサイズよりも大きくなっていてもよい。
【0019】
本実施の形態にかかるプログラムは、マップを参照して、前記マップに含まれる通路を通路方向に自律移動する移動ロボットを制御するロボット制御方法をコンピュータに実行させるプログラムであって、前記ロボット制御方法は、測距センサを用いて測定された周辺物体までの距離を取得し、前記移動ロボットの位置から前記周辺物体までの距離に応じて、前記マップ上での人の位置を特定し、前記マップ上に前記周辺物体を含むように設定される設定領域であって、通路方向において前記周辺物体から第1の距離だけ離れた位置を第1端点とし、前記通路の幅方向において前記周辺物体の位置から前記第1の距離よりも短い第2の距離だけ離れた位置を第2端点とする設定領域を設定し、前記マップ上の前記設定領域に、前記移動ロボットの移動を制限するための制限情報を付与し、前記制限情報に応じて移動するように制御する。
【0020】
上記のプログラムにおいて、前記周辺物体までの距離の変化から、前記通路方向における前記周辺物体の移動方向を推定し、前記移動方向の前方側において、前記周辺物体の位置から前記第1の距離だけ離れた点を第1端点とし、前記移動方向の後方側において、前記周辺物体の位置から第1の距離よりも短い第3の距離だけ離れた点を第3端点とする設定領域を設定してもよい。
【0021】
上記のプログラムにおいて、前記制限情報が、前記測距センサの測定結果に応じて更新されるコストであってもよい。
【0022】
上記のプログラムにおいて、前記測距センサが3次元測距センサと、前記3次元測距センサよりも遠距離を測距可能な2次元測距センサとを含んでいてもよい。
【0023】
上記のプログラムにおいて、前記周辺物体が前記移動ロボットの周辺にいる人又は他の移動ロボットであってもよい。
【発明の効果】
【0024】
本開示によれば、ロボットをより効率よく制御することができるロボット制御システム、ロボット制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0025】
【
図1】本実施形態に係る移動ロボットが利用されるシステムの全体構成を説明するための概念図である。
【
図2】本実施形態に係る制御システムの制御ブロック図である。
【
図4】移動ロボットに搭載された測距センサのセンシング領域を説明するための模式図である。
【
図5】周辺物体であるユーザUAによって付与されるコストを説明するためのマップ図である。
【
図6】本実施形態にかかる制御方法を示すフローチャートである。
【
図7】交差点の周辺でユーザUBが検出された場合の設定領域を示すマップ図である。
【発明を実施するための形態】
【0026】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明は以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【0027】
(概略構成)
図1は、本実施形態に係る移動ロボット20が利用される搬送システム1の全体構成を説明するための概念図である。例えば、移動ロボット20は、搬送物の搬送をタスクとして実行する搬送ロボットである。移動ロボット20は、病院、リハビリセンタ、介護施設、高齢者入居施設などの医療福祉施設内において、搬送物を搬送するために自律走行する。また、本実施の形態にかかるシステムは、ショッピングモールなどの商業施設等にも利用可能である。
【0028】
ユーザU1は、移動ロボット20に搬送物を収容して、搬送を依頼する。移動ロボット20は、設定された目的地まで自律的に移動して、搬送物を搬送する。つまり、移動ロボット20は荷物の搬送タスク(以下、単にタスクともいう)を実行する。以下の説明では、搬送物を搭載する場所を搬送元とし、搬送物を届ける場所を搬送先とする。
【0029】
例えば、移動ロボット20が複数の診療科がある総合病院内を移動するものとする。移動ロボット20は、複数の診療科間で備品、消耗品、医療器具等を搬送する。例えば、移動ロボットは、搬送物をある診療科のナースステーションから、別の診療科へのナースステーションに届ける。あるいは、移動ロボット20は、備品や医療器具の保管庫から診療科のナースステーションまで搬送物を届ける。また、移動ロボット20は、調剤科で調剤された薬品を使用予定の診療科や患者まで届ける。
【0030】
搬送物の例としては、薬剤、包袋などの消耗品、検体、検査器具、医療器具、病院食、文房具などの備品等が挙げられる。医療機器としては、血圧計、輸血ポンプ、シリンジポンプ、フットポンプ、ナースコール、離床センサ、フットポンプ、低圧持続吸入器心電図モニタ、医薬品注入コントローラ、経腸栄養ポンプ、人工呼吸器、カフ圧計、タッチセンサ、吸引器、ネブライザ、パルスオキシメータ、血圧計、人工蘇生器、無菌装置、エコー装置などが挙げられる。また、病院食、検査食などの食事を搬送しても良い。さらに、移動ロボット20は、使用済みの機器、食事済みの食器などを搬送しても良い。搬送先が異なる階にある場合、移動ロボット20はエレベータなどを利用して移動してもよい。
【0031】
搬送システム1は、移動ロボット20と、上位管理装置10と、ネットワーク600と、通信ユニット610と、ユーザ端末400と、を備えている。ユーザU1又はユーザU2は、ユーザ端末400を用いて、搬送物の搬送依頼を行うことができる。例えば、ユーザ端末400は、タブレットコンピュータやスマートフォンなどである。ユーザ端末400は、無線又は有線で通信可能な情報処理装置であればよい。
【0032】
本実施形態においては、移動ロボット20とユーザ端末400は、ネットワーク600を介して上位管理装置10を接続されている。移動ロボット20及びユーザ端末400は、通信ユニット610を介して、ネットワーク600と接続される。ネットワーク600は有線又は無線のLAN(Local Area Network)やWAN(Wide Area Network)である。さらに、上位管理装置10は、ネットワーク600と有線又は無線で接続されている。通信ユニット610はそれぞれの環境に設置された例えば無線LANユニットである。通信ユニット610は、例えば、WiFiルータなどの汎用通信デバイスであってもよい。
【0033】
ユーザU1、U2のユーザ端末400から発信された各種信号は、ネットワーク600を介して一旦、上位管理装置10へ送られ、上位管理装置10から対象となる移動ロボット20へ転送される。同様に、移動ロボット20から発信される各種信号は、ネットワーク600を介して一旦、上位管理装置10へ送られ、上位管理装置10から対象となるユーザ端末400へ転送される。上位管理装置10は各機器と接続されたサーバであり、各機器からのデータを収集する。また、上位管理装置10は、物理的に単一な装置に限られるものではなく、分散処理を行う複数の装置を有していてもよい。また、上位管理装置10は、移動ロボット20等のエッジデバイスに分散して配置されていても良い。例えば、搬送システム1の一部又は全部が移動ロボット20に搭載されていても良い。
【0034】
ユーザ端末400と移動ロボット20は、上位管理装置10を介さずに、信号を送受信してもよい。例えば、ユーザ端末400と移動ロボット20は、無線通信により直接信号を送受信してもよい。あるいは、ユーザ端末400と移動ロボット20は、通信ユニット610を介して、信号を送受信してもよい。
【0035】
ユーザU1又はユーザU2は、ユーザ端末400を用いて搬送物の搬送を依頼する。以下、ユーザU1が搬送元にいる搬送依頼者であり、ユーザU2が搬送先(目的地)にいる受領予定者であるとして説明を行う。もちろん、搬送先にいるユーザU2が搬送依頼を行うことも可能である。また、搬送元又は搬送先以外の場所にいるユーザが搬送依頼を行ってもよい。
【0036】
ユーザU1が搬送依頼を行う場合、ユーザ端末400を用いて、搬送物の内容、搬送物の受取先(以下、搬送元ともいう)、搬送物の届け先(以下、搬送先ともいう)、搬送元の到着予定時刻(搬送物の受取時刻)、搬送先への到着予定時間(搬送期限)等を入力する。以下、これらの情報を搬送依頼情報ともいう。ユーザU1は、ユーザ端末400のタッチパネルを操作することで、搬送依頼情報を入力することができる。搬送元は、ユーザU1がいる場所でも良く、搬送物の保管場所などであってもよい。搬送先は、使用予定のユーザU2や患者がいる場所である。
【0037】
ユーザ端末400は、ユーザU1によって入力された搬送依頼情報を上位管理装置10に送信する。上位管理装置10は、複数の移動ロボット20を管理する管理システムである。上位管理装置10は、移動ロボット20に搬送タスクを実行するための動作指令を送信する。上位管理装置10は搬送依頼毎に、搬送タスクを実行する移動ロボット20を決定する。そして、上位管理装置10は、その移動ロボット20に対して動作指令を含む制御信号を送信する。移動ロボット20が、動作指令に従って、搬送元から搬送先に到着するように移動する
【0038】
例えば、上位管理装置10は、搬送元又はその近傍の移動ロボット20に搬送タスクを割り当てる。あるいは、上位管理装置10は、搬送元又はその近傍に向かっている移動ロボット20に搬送タスクを割り当てる。タスクを割り当てられた移動ロボット20が搬送元まで搬送物を取りに行く。搬送元は、例えば、タスクを依頼したユーザU1がいる場所である。
【0039】
移動ロボット20が搬送元に到着すると、ユーザU1又はその他の職員が移動ロボット20に搬送物を載せる。搬送物を搭載した移動ロボット20が搬送先を目的地として自律移動する。上位管理装置10は、搬送先のユーザU2のユーザ端末400に対して信号を送信する。これにより、ユーザU2は、搬送物が搬送中であることや、その到着予定時間を知ることができる。設定された搬送先に移動ロボット20が到着すると、ユーザU2は、移動ロボット20に収容されている搬送物を受領することができる。このようにして、移動ロボット20が、搬送タスクを実行する。
【0040】
このような全体構成においては、制御システムの各要素を、移動ロボット20、ユーザ端末400および上位管理装置10に分散して全体として制御システムを構築することができる。また、搬送物の搬送を実現するための実質的な要素を一つの装置に集めて構築することもできる。上位管理装置10は、1又は複数の移動ロボット20を制御する。
【0041】
本実施の形態では、マップを参照して自律移動する移動ロボット20である。移動ロボット20を制御するロボット制御システムは、測距センサを用いて測定された人までの距離を示す距離情報を取得する。ロボット制御システムは、人までの距離の変化に応じて、前記人の移動速度及び移動方向を示す移動ベクトルを推定する。ロボット制御システムは、移動ロボットの移動を制限するためのコストをマップ上に付与する。ロボット制御システムは、測距センサの測定結果に応じて更新される前記コストに応じて移動するように制御する。ロボット制御システムは、移動ロボット20に搭載されていてもよい、ロボット制御システムの一部又は全部は上位管理装置10に搭載されていても良い。
【0042】
(制御ブロック図)
図2は、システム1の制御系を示す制御ブロック図を示す。
図2に示すように、システム1は、上位管理装置10、移動ロボット20、環境カメラ300を有する。
【0043】
このシステム1は、所定の施設内において移動ロボット20を自律的に移動させながら、複数の移動ロボット20を効率的に制御する。そのため、施設内には、複数個の環境カメラ300が設置されている。例えば、環境カメラ300は、施設内の通路、ホール、エレベータ、出入り口等に設置されている。
【0044】
環境カメラ300は、移動ロボット20が移動する範囲の画像を取得する。なお、システム1では、環境カメラ300で取得された画像やそれに基づく情報は、上位管理装置10が収集する。あるいは、環境カメラ300で取得された画像等が直接移動ロボットに送信されてもよい。環境カメラ300は、施設内の通路や出入り口に設けられた監視カメラなどであってもよい。環境カメラ300は、施設内の混雑状況の分布を求めるために使用されていてもよい。
【0045】
実施の形態1にかかるシステム1では、上位管理装置10が搬送依頼情報に基づいて、ルート計画を行う。上位管理装置10が作成したルート計画情報に基づいて、それぞれの移動ロボット20に行き先を指示する。そして、移動ロボット20は、上位管理装置10から指定された行き先に向かって自律移動する。移動ロボット20は、自機に設けられたセンサ、フロアマップ、位置情報等を用いて行き先(目的地)に向かって自律移動する。
【0046】
例えば、移動ロボット20は、その周辺の機器、物体、壁、人(以下、まとめて周辺物体とする)に接触しないように、走行する。具体的には、移動ロボット20は、周辺物体までの距離を検知し、周辺物体から一定の距離(距離閾値とする)以上離れた状態で走行する。周辺物体までの距離が距離閾値以下になると、移動ロボット20が減速または停止する。このようにすることで、移動ロボット20が、周辺物体に接触せずに走行可能となる。接触を回避することができるため、安全かつ効率的な搬送が可能となる。
【0047】
上位管理装置10は、演算処理部11、記憶部12、バッファメモリ13、通信部14を有する。演算処理部11は、移動ロボット20を制御及び管理するための演算を行う。演算処理部11は、例えば、コンピュータの中央演算処理装置(CPU:Central Processing Unit)等のプログラムを実行可能な装置として実装可能である。そして、各種機能はプログラムにより実現することもできる。
図2では、演算処理部11において特徴的なロボット制御部111、ルート計画部115、搬送物情報取得部116,コスト付与部118のみを示したが、その他の処理ブロックも備えられる。
【0048】
ロボット制御部111は、移動ロボット20を遠隔で制御するための演算を行い、制御信号を生成する。ロボット制御部111は、後述するルート計画情報125などに基づいて制御信号を生成する。さらに、環境カメラ300や移動ロボット20から得られた各種情報に基づいて、制御信号を生成する。制御信号は、後述するフロアマップ121、ロボット情報123及びロボット制御パラメータ122等の更新情報を含んでいてもよい。つまり、ロボット制御部111は、各種情報が更新された場合、その更新情報に応じた制御信号を生成する。
【0049】
コスト付与部118は、フロアマップ121上にコストを付与する。コスト付与部118は、フロアマップ121上の位置にコストを対応付ける。換言すると、フロアマップ121上の各位置に対してコストを算出する。コストは移動ロボット20の移動を制限するための情報である。例えば、0~100の100段階で設定され、数が大きくなるほど移動ロボット20の移動が制限される。具体的には、フロアマップ121がグリッドで分割されたグリッドマップになっている。そして、コスト付与部118は、グリッド毎にコストを設定する。コストが所定値以上のグリッドには、移動ロボット20が進入できなくなる。あるいは、コストが大きくなるほど、移動速度の上限値を低く設定する。コスト付与部118は、周囲の状況に応じて、随時コストを算出する。コスト付与部118の処理については後述する。
【0050】
搬送物情報取得部116は、搬送物に関する情報を取得する。搬送物情報取得部116は、移動ロボット20が搬送中の搬送物の内容(種別)に関する情報を取得する。搬送物情報取得部116は、エラーが発生した移動ロボット20が搬送中の搬送物に関する搬送物情報を取得する。
【0051】
ルート計画部115は、各移動ロボット20のルート計画を行う。搬送タスクが入力されると、ルート計画部115は、搬送依頼情報に基づいて、当該搬送物を搬送先(目的地)までの搬送するためのルート計画を行う。具体的には、ルート計画部115は、記憶部12に既に記憶されているルート計画情報125やロボット情報123等を参照して、新たな搬送タスクを実行する移動ロボット20を決定する。出発地は、移動ロボット20の現在位置や、直前の搬送タスクの搬送先、搬送物の受取先などである。目的地は、搬送物の搬送先、待機場所、充電場所などである。
【0052】
ここでは、ルート計画部115は、移動ロボット20の出発地から目的地までの通過ポイントを設定している。ルート計画部115は、移動ロボット20毎に、その通過ポイントの通過順を設定する。通過ポイントは、例えば、分岐点、交差点、エレベータ前のロビーやこれらの周辺に設定されている。また、幅の狭い通路では、移動ロボット20のすれ違いが困難となることもある。このような場合、幅の狭い通路の手前を通過ポイントして設定してもよい。通過ポイントの候補は、予めフロアマップ121に登録されていてもよい。
【0053】
ルート計画部115は、システム全体として効率良くタスクを実行できるように、複数の移動ロボット20の中から、各搬送タスクを行う移動ロボット20を決定する。ルート計画部115は、待機中の移動ロボット20や搬送元に近い移動ロボット20に搬送タスクを優先的に割り当てる。
【0054】
ルート計画部115は、搬送タスクが割り当てられた移動ロボット20について、出発地及び目的地を含む通過ポイントを設定する。例えば、搬送元から搬送先までの2以上の移動経路がある場合、より短時間で移動できるように通過ポイントを設定する。そのため、上位管理装置10は、カメラの画像等に基づいて、通路の混雑状況を示す情報を更新する。具体的には、他の移動ロボット20が通過している場所、人が多い場所は混雑度が高い。したがって、ルート計画部115は、混雑度が高い場所を避けるように、通過ポイントを設定する。
【0055】
移動ロボット20は、左回りの移動経路又は右回りの移動経路のいずれでも目的地まで移動できるような場合がある。このような場合、ルート計画部115は、混雑していないほうの移動経路を通過するように通過ポイントを設定する。ルート計画部115が、目的地までの間に、1又は複数の通過ポイントを設定することで、移動ロボット20が混雑していない移動経路で移動することができる。例えば、分岐点、交差点で通路が分かれている場合、ルート計画部115は、適宜、分岐点、交差点、曲がり角及びその周辺に通過ポイントを設定する。これにより、搬送効率を向上することができる。
【0056】
ルート計画部115は、エレベータの混雑状況や、移動距離などを考慮して、通過ポイントを設定してもよい。さらに、上位管理装置10は、移動ロボット20がある場所を通過する予定時刻における、移動ロボット20の数や人の数を推定してもよい。そして、推定された混雑状況に応じて、ルート計画部115が通過ポイントを設定してもよい。また、ルート計画部115は、混雑状況の変化に応じて、通過ポイントを動的に変えてもよい。ルート計画部115は、搬送タスクを割り当てた移動ロボット20について、通過ポイントを順番に設定する。通過ポイントは、搬送元や搬送先を含んでいてもよい。後述するように、移動ロボット20が、ルート計画部115により設定された通過ポイントを順番に通過するように自律移動する。
【0057】
記憶部12は、ロボットの管理及び制御に必要な情報を格納する記憶部である。
図2の例では、フロアマップ121、ロボット情報123、ロボット制御パラメータ122、ルート計画情報125、搬送物情報126を示したが、記憶部12に格納される情報はこれ以外にあっても構わない。演算処理部11では、各種処理を行う際に記憶部12に格納されている情報を用いた演算を行う。また、記憶部12に記憶されている各種情報は最新の情報に更新可能である。
【0058】
フロアマップ121は、移動ロボット20を移動させる施設の地図情報である。このフロアマップ121は、予め作成されるものでもよいし、移動ロボット20から得た情報から生成されるものでもよく、また、予め作成された基本地図に移動ロボット20から得た情報から生成された地図修正情報を加えたものであってもよい。
【0059】
例えば、フロアマップ121には、施設の壁面、ゲート、扉、階段、エレベータ、固定棚などの位置やその情報が格納されている。フロアマップ121は、2次元のグリッドマップとして表現されていてもよい。この場合、フロアマップ121では、各グリッドに壁や扉なの情報が付されている。
【0060】
ロボット情報123は、上位管理装置10が管理する移動ロボット20のID、型番、仕様等が記述される。ロボット情報123は、移動ロボット20の現在位置を示す位置情報を含んでいてもよい。ロボット情報123は、移動ロボット20がタスクを実行中か、待機中かの情報を含んでいてもよい。また、ロボット情報123は、移動ロボット20が動作中か、故障中か等を示す情報を含んでいてもよい。また、ロボット情報123は、搬送可能な搬送物、搬送不可な搬送物の情報を含んでいてもよい。
【0061】
ロボット制御パラメータ122は、上位管理装置10が管理する移動ロボット20についての周辺物体との閾値距離等の制御パラメータが記述される。閾値距離は、人を含む周辺物体との接触を回避するためのマージン距離となる。さらに、ロボット制御パラメータ122は、移動ロボット20の移動速度の速度上限値などの動作強度に関する情報を含んでいても良い。
【0062】
ロボット制御パラメータ122は、状況に応じて更新されてもよい。ロボット制御パラメータ122は、収納庫291の収容スペースの空き状況や使用状況を示す情報を含んでいてもよい。ロボット制御パラメータ122は、搬送可能な搬送物や、搬送不可能な搬送物の情報を含んでいても良い。ロボット制御パラメータ122は、それぞれの移動ロボット20に対して、上記の各種情報が対応付けられている。
【0063】
ルート計画情報125は、ルート計画部115で計画されたルート計画情報を含んでいる。ルート計画情報125は、例えば、搬送タスクを示す情報を含んでいる。ルート計画情報125は、タスクが割り当てられた移動ロボット20のID、出発地、搬送物の内容、搬送先、搬送元、搬送先への到着予定時間、搬送元への到着予定時間、到着期限などの情報を含んでいても良い。ルート計画情報125では、搬送タスク毎に、上述した各種情報が対応付けられていてもよい。ルート計画情報125は、ユーザU1から入力された搬送依頼情報の少なくとも一部を含んでいても良い。
【0064】
さらに、ルート計画情報125は、それぞれの移動ロボット20や搬送タスクについて、通過ポイントに関する情報を含んでいてもよい。例えば、ルート計画情報125は、それぞれの移動ロボット20についての通過ポイントの通過順を示す情報を含んでいる。ルート計画情報125は、フロアマップ121における各通過ポイントの座標や、通過ポイントを通過したか否かの情報を含んでいてもよい。
【0065】
コストマップ128は、コスト付与部118で付与されたコストを示すマップである。具体的にはフロアマップ121上における位置(アドレス、又は座標)にコストが対応付けられている。上記のように、コストマップ128は、各グリッドにコストが格納されたグリッドマップとすることができる。コスト付与部118がコストを付与する毎に、コストマップ128が更新される。なお、複数台の移動ロボット20に格納されたコストマップ228を統合することで、コストマップ128が生成されていてもよい。つまり、複数台の移動ロボットで付与されたコストに基づいて、コストマップ128が生成されていてもよい。
【0066】
搬送物情報126は、搬送依頼が行われた搬送物に関する情報である。例えば、搬送物の内容(種別)、搬送元、搬送先等の情報を含んでいる。搬送物情報126は、搬送を担当する移動ロボット20のIDを含んでいても良い。さらに、搬送物情報は、搬送中、搬送前(搭載前)、搬送済みなどのステータスを示す情報を含んでいてもよい。搬送物情報126は搬送物毎にこれらの情報が対応付けられている。搬送物情報126については後述する。
【0067】
なお、ルート計画部115は、記憶部12に記憶されている各種情報を参照して、ルート計画を策定する。例えば、フロアマップ121、ロボット情報123、ロボット制御パラメータ122、ルート計画情報125に基づいて、タスクを実行する移動ロボット20を決定する。そして、ルート計画部115は、フロアマップ121等を参照して、搬送先までの通過ポイントとその通過順を設定する。フロアマップ121には、予め通過ポイントの候補が登録されている。そして、ルート計画部115が混雑状況等に応じて、通過ポイントを設定する。また、タスクを連続処理する場合などは、ルート計画部115が搬送元及び搬送先を通過ポイントして設定してもよい。
【0068】
なお、1つの搬送タスクについて、2つ以上の移動ロボット20が割り当てられていてもよい。例えば、搬送物が移動ロボット20の搬送可能容量よりも大きい場合、1つの搬送物を2つに分けて、2つの移動ロボット20に搭載する。あるいは、搬送物が移動ロボット20の搬送可能重量よりも重い場合、1つの搬送物を2つに分けて、2つの移動ロボット20に搭載する。このようにすることで、1つの搬送タスクを2つ以上の移動ロボット20が分担して実行することができる。もちろん、異なるサイズの移動ロボット20を制御する場合、搬送物を搬送可能な移動ロボット20が搬送物を受け取るようにルート計画を行ってもよい。
【0069】
さらには、1つの移動ロボット20が、2つ以上の搬送タスクを並行して行ってもよい。例えば、1つの移動ロボット20が2つ以上の搬送物を同時に搭載して、異なる搬送先に順次搬送してもよい。あるいは、1つ移動ロボット20が1つの搬送物を搬送中に、他の搬送物を搭載してもよい。また、異なる場所で搭載された搬送物の搬送先は同じであってもよく、異なっていてもよい。このようにすることで、タスクを効率よく実行することができる。
【0070】
このような場合、移動ロボット20の収容スペースについて、使用状況又は空き状況を示す収容情報を更新するようにしてもよい。つまり、上位管理装置10が空き状況を示す収容情報を管理して、移動ロボット20を制御してもよい。例えば、搬送物の搭載又は受取が完了すると、収容情報が更新される。搬送タスクが入力されると、上位管理装置10は、収容情報を参照して、搬送物を搭載可能な空きがある移動ロボット20を受け取りに向かわせる。このようにすることで、1つの移動ロボット20が、同時に複数の搬送タスクを実行することや、2つ以上の移動ロボット20が搬送タスクを分担して実行することが可能になる。例えば、移動ロボット20の収容スペースにセンサを設置して空き状況を検出しても良い。また、搬送物毎にその容量や重さが予め登録されていてもよい。
【0071】
バッファメモリ13は、演算処理部11における処理において生成される中間情報を蓄積するメモリである。通信部14は、システム1が用いられる施設に設けられる複数の環境カメラ300及び少なくとも1台の移動ロボット20と通信するための通信インタフェースである。通信部14は、有線通信と無線通信の両方の通信を行うことができる。例えば、通信部14は、それぞれの移動ロボット20に対して、その移動ロボット20の制御に必要な制御信号を送信する。また、通信部14は、移動ロボット20や環境カメラ300で収集された情報を受信する。
【0072】
移動ロボット20は、演算処理部21、記憶部22、通信部23、近接センサ(例えば、距離センサ群24)、カメラ25、駆動部26、表示部27、操作受付部28を有する。なお、
図2では、移動ロボット20に備えられている代表的な処理ブロックのみを示したが、移動ロボット20には図示していない他の処理ブロックも多く含まれる。
【0073】
通信部23は、上位管理装置10の通信部14と通信を行うための通信インタフェースである。通信部23は、例えば、無線信号を用いて通信部14と通信を行う。距離センサ群24は、例えば、近接センサであり、移動ロボット20の周囲に存在する物又は人との距離を示す近接物距離情報を出力する。カメラ25は、例えば、移動ロボット20の周囲の状況を把握するための画像を撮影する。また、カメラ25は、例えば、施設の天井等に設けられる位置マーカーを撮影することもできる。この位置マーカーを用いて移動ロボット20に自機の位置を把握させてもよい。
【0074】
駆動部26は、移動ロボット20に備え付けられている駆動輪を駆動する。なお、駆動部26は、駆動輪やその駆動モータの回転回数を検出するエンコーダなどを有していてもよい。エンコーダの出力に応じて、自機位置(現在位置)が推定されていても良い。移動ロボット20は、自身の現在位置を検出して、上位管理装置10に送信する。
【0075】
表示部27及び操作受付部28はタッチパネルディスプレイにより実現される。表示部27は、操作受付部28となるユーザーインタフェース画面を表示する。また、表示部27には、移動ロボット20の行き先や移動ロボット20の状態を示す情報を表示させても構わない。操作受付部28は、ユーザからの操作を受け付ける。操作受付部28は、表示部27に表示されるユーザーインタフェース画面に加えて、移動ロボット20に設けられる各種スイッチを含む。
【0076】
演算処理部21は、移動ロボット20の制御に用いる演算を行う。演算処理部21は、例えば、コンピュータの中央演算処理装置(CPU:Central Processing Unit)等のプログラムを実行可能な装置として実装可能である。そして、各種機能はプログラムにより実現することもできる。演算処理部21は、移動命令抽出部211、駆動制御部212、コスト付与部218、物体検出部219を有する。なお、
図2では、演算処理部21が有する代表的な処理ブロックのみを示したが、図示しない処理ブロックも含まれる。演算処理部21は、通過ポイント間の経路を探索しても良い。また、演算処理部21は、コストマップ228を参照して、経路を決定してもよい。
【0077】
移動命令抽出部211は、上位管理装置10から与えられた制御信号から移動命令を抽出する。例えば、移動命令は、次の通過ポイントに関する情報を含んでいる。例えば、制御信号は、通過ポイントの座標や、通過ポイントの通過順に関する情報を含んでいてもよい。そして、移動命令抽出部211が、これらの情報を移動命令として抽出する。
【0078】
さらに、移動命令は、次の通過ポイントへの移動が可能になったことを示す情報を含んでいてもよい。通路幅が狭いと、移動ロボット20がすれ違うことできない場合がある。また、一時的に通路を通行できない場合がある。このような場合、制御信号は、停止すべき場所の手前の通過ポイントで、移動ロボット20を停止させる命令を含んでいる。そして、他の移動ロボット20が通過した後や通行可能となった後に、上位管理装置10が移動ロボット20に移動可能なことになったことを知らせる制御信号を出力する。これにより、一時的に停止していた移動ロボット20が移動を再開する。
【0079】
駆動制御部212は、移動命令抽出部211から与えられた移動命令に基づいて、移動ロボット20を移動させるように、駆動部26を制御する。例えば、駆動部26は、駆動制御部212からの制御指令値に応じて回転する駆動輪を有している。移動命令抽出部211は、上位管理装置10から受信した通過ポイントに向かって移動ロボット20が移動するように、移動命令を抽出する。そして、駆動部26が駆動輪を回転駆動する。移動ロボット20は、次の通過ポイントに向かって自律移動する。このようにすることで、通過ポイントを順番に通過して、搬送先に到着する。また、移動ロボット20は、自機位置を推定して、通過ポイントを通過したことを示す信号を上位管理装置10に送信しても良い。これにより、上位管理装置10が、各移動ロボット20の現在位置や搬送状況を管理することができる。
【0080】
コスト付与部218は、フロアマップ221上にコストを付与する。コスト付与部218は、フロアマップ221上の位置にコストを対応付ける。換言すると、フロアマップ221上の各位置に対してコストを算出する。コストは移動ロボット20の移動を制限するための制限情報である。例えば、0~100の100段階でコストが設定され、数が大きくなるほど移動ロボット20の移動が制限される。コストの設定範囲における上限値を100とし、下限値を0としているが、設定範囲の上限値及び下限値はこの値に限定されるものでない。
【0081】
具体的には、フロアマップ221がグリッドで分割されたグリッドマップになっている。そして、コスト付与部218は、グリッド毎にコストを設定する。コストが所定値以上のグリッドには、移動ロボット20が進入できなくなる。あるいは、コストが大きくなるほど、移動速度の上限値を低く設定する。コスト付与部218は、周囲の状況に応じて、随時コストを算出する。コスト付与部218の処理については後述する。
【0082】
物体検出部219は、移動ロボット20の周辺にある周辺物体を検出する。さらに、物体検出部219は、周辺物体が他の移動ロボット20や人間の移動体である場合、移動体の移動速度及び移動方向を推定する。また、物体検出部219は、周辺物体が、施設に固定された固定物体が、施設内を移動可能な移動体であるかを特定してもよい。固定物体としては、施設内の壁面、扉、机、固定棚などがあり、フロアマップ121,221にその情報が格納されている。移動体としては、他の移動ロボット、ストレッチャ、点滴台、可動式の医療機器、キャスタ付きの棚、人、車椅子などが挙げられる。
【0083】
移動体は、通常、フロアマップ121,221にその情報が登録されていない。よって、物体検出部219は、フロアマップ121、221を参照して、周辺物体が固定物体か移動体であるかを検出することができる。つまり、フロアマップ221上に登録されている物体と一致する位置にある周辺物体は、固定物体となる。フロアマップ221上に登録されている物体と一致する位置にない周辺物体は、移動体となる。移動体は、物体に限らず、人間や動物であってもよい。
【0084】
移動ロボット20は、オドメトリーなどによりフロアマップ121における自己位置を推定している。そして、自己位置から周辺物体までの距離と方向に応じて、物体検出部219が、フロアマップ121上における周辺物体の位置を特定することができる。物体検出部219は、周辺物体がフロアマップ221に登録されているか否かを判定する。周辺物体までの距離と方向は距離センサ群24の測定結果により取得することができる。
【0085】
さらに、物体検出部219は、距離センサ群24やカメラ25等のセンシング結果に基づいて、周辺物体を特定してもよい。例えば、距離センサ群24がライダであるとすると、周辺物体の表面形状を測定することができる。物体検出部219が表面形状に応じて、周辺物体を特定することができる。例えば、周辺物体が周囲にいる人である場合、距離センサ群24で検出された表面形状が人の表面形状とマッチする。あるいは、物体検出部219は、カメラ25の撮像画像に基づいて、周辺物体を特定することができる。例えば、周辺物体が周囲にいる人である場合、カメラ25の撮像画像が人の参照画像とマッチする。よって、物体検出部219は、周辺物体が人であることを特定することができる。このように、各種センサの検出結果に対してパターンマッチング処理を施すことで、周辺物体が人や他の移動ロボットであるかを特定することができる。
【0086】
記憶部22には、フロアマップ221とロボット制御パラメータ222と搬送物情報226が格納される。
図2に示したのは、記憶部22に格納される情報の一部で有り、
図2に示したフロアマップ221とロボット制御パラメータ222と搬送物情報226以外の情報も含まれる。フロアマップ221は、移動ロボット20を移動させる施設の地図情報である。このフロアマップ221は、例えば、上位管理装置10のフロアマップ121をダウンロードしたものである。なお、フロアマップ221は、予め作成されたものであってもよい。また、フロアマップ221は、施設全体の地図情報ではなく、移動予定の領域を部分的に含む地図情報であってもよい。
【0087】
ロボット制御パラメータ222は、移動ロボット20を動作させるためのパラメータである。ロボット制御パラメータ222には、例えば、周辺物体との距離閾値が含まれる。さらに、ロボット制御パラメータ222には、移動ロボット20の速度上限値が含まれている。
【0088】
搬送物情報226は、搬送物情報126と同様に搬送物に関する情報を含んでいる。搬送物の内容(種別)、搬送元、搬送先等の情報を含んでいる。搬送物情報は、搬送中、搬送前(搭載前)、搬送済みなどのステータスを示す情報を含んでいてもよい。搬送物情報226は搬送物毎にこれらの情報が対応付けられている。搬送物情報126については後述する。搬送物情報226は、移動ロボット20が搬送する搬送物に関する情報を含んでいればよい。したがって、搬送物情報226は搬送物情報126の一部となる。つまり、搬送物情報226は、他の移動ロボット20が搬送する情報を含んでいなくても良い。
【0089】
駆動制御部212は、ロボット制御パラメータ222を参照して、距離センサ群24から得られた距離情報が示す距離が距離閾値を下回ったことに応じて動作を停止或いは減速をする。駆動制御部212は、速度上限値以下の速度で走行するように、駆動部26を制御する。駆動制御部212は、速度上限値以上の速度で移動ロボット20が移動しないように、駆動輪の回転速度を制限する。
【0090】
コストマップ228は、コスト付与部218で付与されたコストを示すマップである。具体的にはフロアマップ221上における位置(アドレス、又は座標)にコストが対応付けられている。上記のように、コストマップ228は、各グリッドにコストが格納されたグリッドマップとすることができる。コスト付与部218がコストを算出する毎に、コストマップ228が更新される。
【0091】
コストマップ228で示されたコストは、通信部23を介して、上位管理装置10に送信される。つまり、通信部23は、コスト付与部218が付与したコストを上位管理装置10に送信する。また、通信部23は、コストに、コストを付与した移動ロボット20のIDを付して、上位管理装置10に送信する。これにより、上位管理装置10のコスト付与部118が複数の移動ロボット20が付与したコストを統合することができる。
【0092】
(移動ロボット20の構成)
ここで、移動ロボット20の外観について説明する。
図3は、移動ロボット20の概略図を示す。
図3に示す移動ロボット20は、移動ロボット20の態様の1つであり、他の形態であってもよい。なお、
図3では、x方向が移動ロボット20の前進方向及び後進方向、y方向が移動ロボット20の左右方向であり、z方向が移動ロボット20の高さ方向である。
【0093】
移動ロボット20は、本体部290と、台車部260とを備えている。台車部260の上に、本体部290が搭載されている。本体部290と、台車部260とそれぞれ直方体状の筐体を有しており、この筐体内部に各構成要素が搭載されている。例えば、台車部260の内部には駆動部26が収容されている。
【0094】
本体部290には、収容スペースとなる収納庫291と、収納庫291を密封する扉292とが設けられている。収納庫291には、複数段の棚が設けられており、段毎に空き状況が管理される。例えば、各段に重量センサ等の各種センサを配置することで、空き状況を更新することができる。移動ロボット20は、収納庫291に収納された搬送物を上位管理装置10から指示された目的地まで自律移動により搬送する。本体部290は図示しない制御ボックスなどを筐体内に搭載していても良い。また、扉292は電子キーなどで施錠可能となっていても良い。搬送先に到着するとユーザU2が電子キーで扉292を開錠する。あるいは、搬送先に到着した場合、自動で扉292が開錠してもよい。
【0095】
図3に示すように、移動ロボット20の外装には、距離センサ群24として前後距離センサ241及び左右距離センサ242が設けられる。移動ロボット20は、前後距離センサ241により移動ロボット20の前後方向の周辺物体の距離を計測する。また、移動ロボット20は、左右距離センサ242により移動ロボット20の左右方向の周辺物体の距離を計測する。
【0096】
例えば、前後距離センサ241は、本体部290の筐体の前面及び後面にそれぞれ配置される。左右距離センサ242は、本体部290の筐体の左側面及び右側面にそれぞれ配置される。前後距離センサ241及び左右距離センサ242は例えば、超音波距離センサやレーザレンジファインダである。周辺物体までの距離を検出する。前後距離センサ241又は左右距離センサ242で検出された周辺物体までの距離が、距離閾値以下となった場合、移動ロボット20が減速または停止する。
【0097】
駆動部26には、駆動輪261及びキャスタ262が設けられる。駆動輪261は移動ロボット20を前後左右に移動させるための車輪である。キャスタ262は、駆動力は与えられず、駆動輪261に追従して転がる従動輪である。駆動部26は、図示しない駆動モータを有しており、駆動輪261を駆動する。
【0098】
例えば、駆動部26は、筐体内に、それぞれが走行面に接地する2つの駆動輪261と2つのキャスタ262を支持している。2つの駆動輪261は、互いに回転軸芯が一致するように配設されている。それぞれの駆動輪261は、不図示のモータによって独立して回転駆動される。駆動輪261は、
図2の駆動制御部212からの制御指令値に応じて回転する。キャスタ262は、従動輪であり、駆動部26から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、駆動部26の移動方向に倣うように追従する。
【0099】
移動ロボット20は、例えば、2つの駆動輪261が同じ方向に同じ回転速度で回転されれば直進し、逆方向に同じ回転速度で回転されれば2つの駆動輪261のほぼ中央を通る鉛直軸周りに旋回する。また、2つの駆動輪261を同じ方向と異なる回転速度で回転させることで、左右に曲がりながら進むことができる。例えば、左の駆動輪261の回転速度を右の駆動輪261の回転速度より高くすることで、右折することができる。反対に、右の駆動輪261の回転速度を左の駆動輪261の回転速度より高くすることで、左折することができる。すなわち、移動ロボット20は、2つの駆動輪261の回転方向、回転速度がそれぞれ制御されることにより、任意の方向へ並進、旋回、右左折等することができる。
【0100】
また、移動ロボット20では、本体部290の上面に表示部27、操作インタフェース281が設けられる。表示部27には、操作インタフェース281が表示される。ユーザが表示部27に表示された操作インタフェース281をタッチ操作することで、操作受付部28がユーザからの指示入力を受け付けることができる。また、非常停止ボタン282が表示部27の上面に設けられる。非常停止ボタン282及び操作インタフェース281が操作受付部28として機能する。
【0101】
表示部27は、例えば液晶パネルであり、キャラクターの顔をイラストで表示したり、移動ロボット20に関する情報をテキストやアイコンで呈示したりする。表示部27にキャラクターの顔を表示すれば、表示部27が擬似的な顔部であるかの印象を周囲の観察者に与えることができる。移動ロボット20に搭載されている表示部27等をユーザ端末400として用いることも可能である。
【0102】
本体部290の前面には、カメラ25が設置されている。ここでは、2つのカメラ25がステレオカメラとして機能する。つまり、同じ画角を有する2つのカメラ25が互いに水平方向に離間して配置されている。それぞれのカメラ25で撮像された画像を画像データとして出力する。2つのカメラ25の画像データに基づいて、被写体までの距離や被写体の大きさを算出することが可能である。演算処理部21は、カメラ25の画像を解析することで、移動方向前方に人や障害物などを検知することができる。進行方向前方に人や障害物などがいる場合、移動ロボット20は、それらを回避しながら、経路に沿って移動する。また、カメラ25の画像データは、上位管理装置10に送信される。
【0103】
移動ロボット20は、カメラ25が出力する画像データや、前後距離センサ241及び左右距離センサ242が出力する検出信号を解析することにより、周辺物体を認識したり、自機の位置を同定したりする。カメラ25は、移動ロボット20の進行方向前方を撮像する。移動ロボット20は、図示するように、カメラ25が設置されている側を自機の前方とする。すなわち、通常の移動時においては矢印で示すように、自機の前方が進行方向となる。
【0104】
次に、距離センサ群24のセンシング領域の一例について説明する。ここでは、
図4に示すように、距離センサ群24として2つの測距センサ24A、24Bが設けられている。測距センサ24Aは2次元測距センサであり、測距センサ24Bは3次元測距センサである。前後距離センサ241及び左右距離センサ242に対応していてもよく、別体として設けられていてもよい。測距センサ24A、及び測距センサ24Bは所定の時間間隔で周辺物体の距離を繰り返し測定する。測距センサ24Aは、測距センサ24Bよりも測定レンジ(測定可能距離が長くなっている)。
【0105】
測距センサ24A、測距センサ24Bは、パルスレーザ光を測定信号として用いるライダ(LiDAR:Light Detection and Ranging、Laser Imaging Detection and Ranging)である。測距センサ24A、測距センサ24Bは、周辺物体で反射した戻り光の位相や往復時間などによって、周辺物体までの距離を測定している。測距センサ24A、及び測距センサ24Bは、レーザ光の出射方向を変えるための走査ミラーを有している。測距センサ24A、測距センサ24Bが走査ミラーを駆動することで、測定方向が変化する。
【0106】
測距センサ24Aは、2次元ライダであり、センシング領域(画角範囲)SAが水平面と平行なっている。つまり、測距センサ24Aでは、走査ミラーが鉛直軸周りに回転するため、測定方向がヨー軸周りに変化する。測定信号の出射方向は、水平面と平行である、測定信号の出射方向が、水平面内に変化する。もちろん、センシング領域は、水平面と平行に限られるものではない。例えば、床面が斜面の場合、センシング領域SAは、斜面と平行であってもよい。センシング領域SAが左右方向に拡がっている。
【0107】
例えば、測距センサ24Aは、移動ロボット20を中心とする全方位(360°)を1°毎に走査することで、2次元測距を行う。センシング領域SAは、水平面内において、360°の全方位となっていてもよく、一部の角度範囲であってもよい。例えば、移動方向前方を中心とした所定の角度範囲のみをセンシング領域SAとすることができる。測距センサ24Aは、自己位置の推定に用いられてもよい。例えば、移動ロボット20の周辺に壁がある場合、この壁の情報がフロアマップ221に格納されている。測距センサ24Aが壁までの距離を測定すると、演算処理部21がフロアマップ221を参照して、移動ロボット20の現在位置を推定する。また、測距センサ24Aは、周辺にある障害物の検知に利用されてもよい。
【0108】
測距センサ24Bは、3次元ライダであり、センシング領域(画角範囲)SBが立体的になっている。例えば、測距センサ24Bでは、測定信号の出射方向がヨー軸、ピッチ軸周りに変化する。測距センサ24Bが3次元のセンシング領域SBをスキャンすることで、周辺物体の3次元形状を示す点群データを取得することができる。
【0109】
3次元測定を行う測距センサ24Bと2次元測定を行う測距センサ24Aとを用いて、周辺物体までの距離を測定している。例えば、測距センサ24Aの測定可能距離(測定レンジ)が測距センサ24Bの測定可能距離(測定レンジ)よりも長くなっている。つまり、測距センサ24Aは、3次元測定を行う測距センサ24Bよりも遠距離を測距可能となる。この場合、パルスレーザ光の強度に応じて、測定レンジを設定することができる。
【0110】
測距センサ24Aでフロアマップ221上にない周辺物体が検出された場合、測距センサ24Bがその周辺物体の3次元形状を測定する。例えば、測距センサ24Aが移動している周辺物体を検出すると、測距センサ24Bが移動している周辺物体までの距離を高精度で測定する。これにより周辺物体までの3次元の表面形状を高精度で測定することができる。
【0111】
例えば、
図4では、移動ロボット20の前方にユーザUAが周辺物体として存在している。遠距離を測距可能な測距センサ24Aの測定結果から、物体検出部219がユーザUAを周辺物体として検出する。ユーザUAは、フロアマップ221に登録されていないため、測距センサ24Bが測距可能な位置まで近づいたら、測距センサ24BがユーザUAに対して測定を行う。ユーザUAをセンシング領域SBに含むように設定して、測距センサ24Bが測定を行う。測距センサ24Bが、測定信号の走査角度のピッチを小さくして高精度で距離測定を行。そして、測距センサ24Bが、周辺物体表面の3次元形状を測定する。これにより、ユーザUAの3次元形状を示す点群データを測定することができる。
【0112】
このように、物体検出部219が測距センサ24Aの測定結果から周辺に周辺物体があることが検知した場合、周辺物体をセンシング領域SBの中心として測距センサ24Bが3次元測定を行う。
【0113】
また、物体検出部219は、測距センサ24Bの測定結果から周辺物体の移動ベクトルを算出することができる。周辺物体が移動している人や他の移動ロボット20である場合、物体検出部219は人や移動ロボット20の移動ベクトルを推定する。移動ベクトルは、移動速度及び移動方向を含む情報である。例えば、移動ロボット20から周辺物体までの距離に変化に基づいて、周辺物体の移動ベクトルを推定する。移動ロボット20は、自己の現在位置を検出している。そして、物体検出部219は、周辺物体までの距離と方向に応じて、フロアマップ221における周辺物体の位置を検出する。そして、フロアマップ221上における周辺物体の位置の時間変化に応じて、移動ベクトルを算出する。
【0114】
図4では、移動ロボット20の周辺にユーザUAがいるため、物体検出部219がユーザUAを周辺物体として検出する。なお、ユーザUAは、施設の職員や利用者である。上記のように、物体検出部219は、ユーザUAのフロアマップ221上での位置を検出している。さらに、測距センサ24Aと測距センサ24Bとが繰り返し測定を行っている。物体検出部219は、ユーザUAのフロアマップ221の位置を比較することで、ユーザUAの移動ベクトルを推定している。そして、コスト付与部218は、ユーザUAの移動ベクトルに応じてコストを付与する。
【0115】
また、物体検出部219は、周辺物体の重心位置を推定して、重心位置の変化に基づいて移動ベクトルを推定してもよい。例えば、物体検出部219は、測距センサ24Bの測定で得られた3次元形状や点群データに基づいて、フロアマップ221上における周辺物体の重心位置を算出する。ここで重心位置は、フロアマップ221内における位置、つまり、水平面内における2次元位置とすることができる。例えば、点群データの点の重心位置が周辺物体の物体検出部219は、周辺物体の重心位置の変化から移動ベクトルを算出しても良い。例えば、物体検出部219は、前回の測定結果から得られる重心位置と、最新の測距結果から得られる重心位置をフロアマップ上で比較することで、周辺物体の移動ベクトルを算出する。このようにすることで、移動速度、及び移動方向の推定精度を向上することができる。
【0116】
図5は、移動ロボット20の周辺にいるユーザUA及び移動ロボット20Aに対して付与されたコストを説明するための模式図である。
図5は、通路Hを走行中の移動ロボット20とその周辺を模式的に示す平面図である。
図5に示す上面視において、上下方向(例えば、南北方向)に沿った通路Hを移動ロボット20が移動している。通路Hの左右両側には壁Wが設けられている。つまり、左右の壁Wの間が通路Hとなる。
図5では、移動ロボット20が通路Hに沿って、下から上に向かうように移動している。具体的には、移動ロボット20は、ルート計画部115で計画された経路P1に沿って通路Hを移動している。経路P1は、通路Hを通路方向に沿って直進するルートである。
【0117】
図5中において、移動ロボット20が上方向に進んでいる。つまり、
図5中における上方向が移動ロボット20の前方向となり、下方向が移動ロボット20の後ろ方向となる。さらに、移動ロボットは通路Hの通路方向に沿って移動している。
図5中の上下方向が通路方向となり、左右方向が通路の幅方向となる。通路方向における通路Hのサイズは、幅方向における通路Hのサイズよりも大きくなっている。通路方向及び幅方向は、フロアマップ221,121上に予め登録されていてもよい。つまり、フロアマップ221,121において、通路毎に、通路方向と幅方向を示す情報が登録されていてもよい。
【0118】
ここで、移動ロボット20の前方において、ユーザUA及び移動ロボット20Aが通路Hを移動している。測距センサ24A、24Bの測距結果から物体検出部219がユーザUAと移動ロボット20Aとを検出する。さらに、移動ロボット20は、フロアマップ221上における自己位置を推定している。したがって、物体検出部219は、フロアマップ221上におけるユーザUAと移動ロボット20Aの位置を特定することができる。物体検出部219は測距センサの測距結果に基づいて、周辺物体の位置を検出する。物体検出部219によって検出された周辺物体の位置を検出位置とする。検出位置はフロアマップ221上の位置である。ここでは、ユーザUA及び移動ロボット20Aの検出位置は、通路Hに含まれている。
【0119】
物体検出部219は、ユーザUA及び移動ロボット20Aの移動ベクトルを推定してもよい。移動ベクトルは、周辺物体の移動方向及び移動速度を示す。例えば、測距センサ24A,及び測距センサ24BがユーザUAまでの距離を繰り返し測定している。つまり、測距センサ24A,及び測距センサ24Bは、移動ロボット20を基準として、ユーザUAまでの距離と方向を測定する。物体検出部219は、移動ロボット20の自己の現在位置を考慮して、フロアマップ221上におけるユーザUAの位置を特定する。
【0120】
物体検出部219は、前回測定時のユーザUAの位置と最新測定時のユーザUAの位置を比較することで移動方向を推定する。物体検出部219は、前回測定時のユーザUAの位置と最新測定時のユーザUAの位置との間の距離を算出する。そして、測距センサ24A,及び測距センサ24Bの測定時間間隔からユーザUAの移動速度を推定する。例えば、ライダの走査周期、センシング領域の大きさ等に応じて測定時間間隔が決まる。もちろん、移動ベクトルの推定は上記の手法に限られるものではない。例えば、物体検出部219は、測距センサの3回以上の測定結果に平均値により、移動ベクトルを推定してもよい。
【0121】
物体検出部219がユーザUAの移動ベクトルを算出している。つまり、物体検出部219は、フロアマップ221におけるユーザUAの位置の変化に基づいて、ユーザUAの移動ベクトルを算出する。ここでは、ユーザUAの移動ベクトルはフロアマップ221上におけるユーザUAの絶対的な移動速度と移動方向を示している。同様に、物体検出部219は移動ロボット20Aの移動ベクトルを推定してもよい。
【0122】
コスト付与部218は、周辺物体の検出位置に基づいて、コストをフロアマップ221に付与する。コスト付与部218は、フロアマップ221のグリッド毎にコストを算出する。ユーザUAの位置に基づいてコストが付与される設定領域を設定領域C1とし、移動ロボット20Aの位置に基づいてコストが付与される設定領域を設定領域C2とする。設定領域C1は、ユーザUAとその周辺を含むように設定されている。コスト付与部218は、フロアマップ221上における周辺物体の位置に基づいて、フロアマップ221上に設定領域を設定する。ここでは、コスト付与部218は、周辺物体毎に設定領域を設定する。
【0123】
設定領域C1及び設定領域C2は、通路方向を長手方向とする形状となっている。例えば、設定領域C1は、通路方向を長軸(長手方向)とし、幅方向と短軸(短手方向)とする楕円形となっている。設定領域C2は、通路方向に沿った長辺と幅方向に沿った短辺とを有する長方形となっている。設定領域C1は、ユーザUA1及びその周辺を含むように設定されている。設定領域C2は、移動ロボット20Aとその周辺を含むように設定されている。
【0124】
設定領域C1は、周辺物体として人が検出された場合に、その人の検出位置を基準として設定される固定領域となっている。設定領域C2は、周辺物体として移動ロボットが検出された場合に、その移動ロボット20Aの検出位置を基準として設定される固定領域となっている。もちろん、設定領域は、楕円形や長方形以外の形状であってもよい。
【0125】
例えば、物体検出部219は、測距センサで検出された点群データ等に基づいて、周辺物体を特定する。物体検出部219は、点群データに対してパターンマッチングを行うことで、周辺物体が人であるか、移動ロボットであるかを特定することができる。コスト付与部218において、周辺物体の種類に応じて予めサイズ及び平面形状が設定されている。コスト付与部218は、周辺物体に応じたサイズ及び形状の設定領域をフロアマップ221上の検出位置に設定する。コスト付与部218は、周辺物体を含むように、フロアマップ221上に設定領域を設定する。
【0126】
コスト付与部218は、設定領域C1、及び設定領域C2に含まれるグリッドにコストを付与する。ここでは、設定領域C1、C2に含まれるグリッドに対して、一定値のコストを付与している。もちろん、移動ベクトルや位置に応じて、グリッド毎にコストの値が異なっていても良い。例えば、移動速度が速いほど、付与するコストを高くすることができる。また、ユーザUA及び移動ロボット20Aに近い位置ほど、コストを高くすること、あるいは低くすることができる。コスト付与部218は、周辺物体の種類に応じてコストの値を決定してもよい。コストは、設定領域C1、C2内で所定の分布を有していてもよい。
【0127】
以下、ユーザUAに対してコストを設定するための設定領域C1について詳述する。以下の説明において、前後方向及び左右方向は、移動ロボット20の移動方向を基準にして説明する。例えば、移動ロボット20は、前方向は移動ロボット20の進む方向である。なお、設定領域C2については、設定領域C1と同様の観点で規定することができるため説明を省略する。
【0128】
後ろ側における設定領域C1の端点を端点E1とし、前側における設定領域C1の端点を端点E3とする。左側における設定領域C1の端点を端点E2とし、右側における設定領域C1の端点を端点E4とする。設定領域C1は、端点E1~E4を通る楕円形である。
【0129】
前後方向におけるユーザUAから端点E1までの距離を距離D1とし、ユーザUA1から端点E3までの距離を距離D3とする。通路方向において、周辺物体から距離D1だけ離れた点が端点E1となる。通路方向において、周辺物体から距離D3だけ離れた点が端点E3となる。
【0130】
左右方向におけるユーザUAから端点E2までの距離を距離D2とし、ユーザUA1から端点E4までの距離を距離D4とする。幅方向において、周辺物体から距離D2だけ離れた点が端点E2となる。幅方向において、周辺物体から距離D4だけ離れた点が端点E4となる。距離D1は、距離D2~距離D4よりも大きくなっている。つまり、通路方向の後方側における距離D1が距離D1~D4の中で最大となるように端点E1~E4が設定されている。
【0131】
なお、距離D1~距離D4の始点として周辺物体の表面位置が設定されているが、周辺物体の重心位置を始点として設定してもよい。この場合、距離D1~距離D4の始点が共通となる。したがって、距離D1と距離D3の和が通路方向における設定領域C1のサイズとなる。距離D2と距離D4の和が幅方向における設定領域C1のサイズとなる。
【0132】
前後方向における設定領域C1のサイズは、前後方向における端点E1から端点E3までの距離で規定される。左右方向における設定領域C1のサイズは、左右方向における端点E2から端点E4までの距離で規定される。上記のように、設定領域C1は、通路方向を長手方向としている。したがって、前後方向における端点E1から端点E3までの距離は、左右方向における端点E2から端点E4までの距離が大きくなっている。
【0133】
コスト付与部218は、周辺物体の検出位置に応じて、設定領域を設定して、この設定領域にコストを付与している。このようにすることで、移動ロボット20は、効率良く移動させることができる。例えば、移動ロボット20は、設定領域C1、及び設定領域C2を避けるような経路P2で移動する。したがって、移動ロボット20は移動速度を落とすことなく移動することができる。
【0134】
通常、通路Hにおいて、ユーザUAや移動ロボット20Aは、通路方向に沿って移動することが多い。換言すると、通路Hでは幅が限られているため、幅方向に移動することが少ない。コスト付与部218は、端点E1までの距離D1を端点E2、E3までの距離D2,D3よりも長くするような設定領域C1を設定している。そしてコスト付与部218は、この設定領域C1に対してコストを付与している。
【0135】
このようにすることで、移動ロボット20が、ユーザUA及び移動ロボット20Aの移動先を回避するように移動することができる。よって、移動ロボット20が減速や停止をすることなく、通路Hに沿って移動できる。移動中の周辺物体がいる状況において、移動ロボット20が、通路Hを効率良く移動することができる。また、設定領域C1は、通路方向を長手方向とし、幅方向を短手方向とする形状とすることが好ましい。さらに、距離D1~距離D4の中で、移動ロボット20に近づく通路方向の後方側の端点E1までの距離D1が最大となっていることが好ましい。これにより、適切な設定領域にコストを付与することができる。
【0136】
そして、コスト付与部218は、測距毎に得られる検出位置に基づいてコストを算出して、順次加算していく。周辺物体が移動している場合、測距毎に周辺物体の検出位置も変わっていく。このため、設定領域C1、C2の位置も測距毎に変化していく。測距センサ24A、24Bの測定結果に応じてコストが更新されていく。設定領域C1、C2に含まれるグリッドでは、コストが加算される。つまり、設定領域C1、C2のグリッドではコストが増加する。また、測定毎に全グリッドのコストを一定値だけ減算するようにする。したがって、設定領域C1,C2に含まれないグリッドでは、時間経過に従ってコストが減少していく。つまり、設定領域C1、C2の外側のグリッドでは、測距毎にコストが減少していく。付与するコストや減算するコストは、コストの設定範囲、測定時間間隔、移動ベクトル等に応じて決定すれば良い。このように、コスト付与部218が測定毎にコストを付与することで、コストマップが随時更新されていく。
【0137】
そして、移動ロボット20は、コストマップ228に応じて移動する。コストが低いグリッドを通過するような経路P2に沿って移動ロボット20が移動する。
図5では、ユーザUA及び移動ロボット20Aの周辺のコストが高くなっているため、ユーザUAと移動ロボット20Bの移動方向前方を避けて通過するような経路P2に沿って移動ロボット20が移動する。例えば、コストマップにおけるコストが所定値以下のグリッドを通過するような経路P2が設定される。経路P2は、設定領域C1と設定領域C2の間を通過するように設定される。移動ロボット20は、コストマップ228を経路計画に反映させている。
【0138】
このようにすることで、移動ロボット20が効率良く移動することができる。移動ロボット20がユーザUA及び移動ロボット20Aの移動先を予測して、経路計画を行うことができる。つまり、ユーザUAの移動先を避けるような経路P2で移動できるため、移動速度を落とさずに移動することができる。目的地まで移動する移動時間を短縮することができる。人がいる環境で利用される移動ロボット20では、人を回避して移動することが望まれる。人を回避できるように制御するためには、移動速度を上げることが困難となる。本実施の形態のように、設定領域を設定して、コストを更新することで、人の位置を予測することができる。従って、移動ロボット20が、効率よく、移動することができる。
【0139】
演算処理部21が、測距センサ24A、24Bの測定結果に応じて更新されるコストに応じて移動するように制御する。例えば、演算処理部21がコストマップ228に基づいて、経路を再計画すれば良い。つまり、移動している通路においてコストが低いグリッドを通過するように、移動ロボット20が経路計画を行う。経路P1に含まれるグリッドにおいて、コストが所定値以上になると、演算処理部21が直進する経路P1を修正して、新しい経路P2を設定する。
【0140】
なお、
図5では壁Wの近傍において、壁コスト領域CWが設定されている。壁コスト領域CWは壁Wから距離が所定距離以下の領域であり、壁Wに沿って配置されている。壁コスト領域CWのコストは固定値となっている。つまり、壁コスト領域CWには、一定の壁コストが設定されている。この場合、壁Wの近傍ではコストが時間によって変化しなくなっている。つまり、測距センサの測定結果が更新された場合でも、壁コスト領域CWのコストは一定値で固定される。したがって、壁Wを移動ロボット20が通過しないような経路が計画される。このように、壁W等の近傍のグリッドにおいて、コストを常時付与することで、壁Wへの衝突、接近を防ぐことができる。よって、より効率良く移動することができる。例えば、上記の距離閾値を大きく設定することが可能になる。
【0141】
複数台の移動ロボット20が各フロアマップ221上にコストを付与するようにしてもよい。つまり、それぞれの移動ロボット20に設けられた測距センサ24A,24Bの測定結果に基づいて、それぞれの移動ロボット20がコストを付与する。
【0142】
そして、複数台の移動ロボット20がフロアマップ又はコストマップを共有していてもよい。例えば、移動ロボット20の測距センサ24A,24Bの死角となってしまう領域においても、他の移動ロボット20の測距センサが測定を行うことができる。よって、他の移動ロボットが死角となってしまう領域に対して、コストを付与することができる。移動ロボット20が各自のコストマップを上位管理装置10に送信する。
【0143】
そして、上位管理装置10が複数台の移動ロボット20のコストマップ228のコストを加算することで、共有用のコストマップ128を生成する。上位管理装置10は、共有用のコストマップ128のコストを各移動ロボット20に送信する。この場合、コストマップ128の一部の領域のみのコストを送信しても良い。つまり、上位管理装置10が、移動ロボット20の移動方向前方において、死角となっている領域のコストを移動ロボット20に送信する。このようにすることで、移動ロボット20の測距センサ24A、24Bの死角となる領域についてもコストが付与される。よって、移動ロボット20は、死角となる領域における状況を予測することができるため、より効率よく移動することができる経路を計画することが可能となる。
【0144】
なお、
図5では、周辺物体がユーザUA、つまり人であるとして説明したが、周辺物体は人に限らず、他の移動ロボット20Aであってもよい。あるいは、周辺物体は、搬送台車や車椅子などであってもよい。移動ロボット20の周辺に移動する周辺物体(人又は移動ロボットなど)がある場合、その設定領域に付されたコストに基づいて移動ロボット20が移動する。
【0145】
また、本実施の形態では、2次元測定を行う測距センサ24Aと3次元測定を行う測距センサ24Bとを用いて、周辺物体までの距離を測定している。そして、2次元測定を行う測距センサ24Aの測定可能距離(測定レンジ)が測距センサ24Bの測定可能距離(測定レンジ)よりも長くなっている。つまり、測距センサ24Aは、3次元測定を行う測距センサ24Bよりも遠距離を測距可能となる。このようにすることで、周辺物体の移動ベクトルの推定精度を向上することができる。
【0146】
また、測距センサ24Bの測定結果から周辺物体の重心位置を推定してもよい。そして、物体検出部219は、周辺物体の重心位置の時間変化から移動ベクトルを算出しても良い。このようにすることで、移動速度、及び移動方向の推定精度を向上することができる。フロアマップ又はコストマップを共有していてもよい。例えば、移動ロボット20の測距センサ24A,24Bの死角となってしまう領域においても、他の移動ロボット20の測距センサが測定を行うことができる。よって、他の移動ロボットが死角となってしまう領域に対して、コストを付与することができる。移動ロボット20が各自のコストマップを上位管理装置10に送信する。
【0147】
また、コスト付与部218は、周辺物体の移動方向や移動速度に応じて、コストを付与してもよい。例えば、物体検出部219が、ユーザUAが移動ロボット20に向かって通路Hを移動していると推定する。つまり、ユーザUAが
図5中の下に向かって移動している。この場合、移動方向後方側の端点E3までの距離D3を、距離D1よりも小さくする。つまり、移動ロボット20から遠い側では、周辺物体と干渉する可能性が低いため、よって、距離D3を短くして設定領域C1を小さくする。また距離D3を距離D2,D4よりも小さくするように端点E3を設定してもよい。
【0148】
さらに、コスト付与部218は、周辺物体の移動速度に応じて、設定領域の大きさを変えることも可能である。例えば、周辺物体の移動速度が大きくなるほど、コスト付与部218が設定領域を大きく設定してもよい。また、コスト付与部218は、移動方向に応じて、設定領域を変形、又は回転してもよい。例えば、設定領域の長手方向が移動方向と平行になるように設定領域を設定してもよい。
【0149】
図6を用いて、本実施の形態にかかる制御方法について説明する。
図6は、制御方法を示すフローチャートである。まず、測距センサ24A,測距センサ24Bが2次元測距と3次元測距を行う(S11、S21)。そして、物体検出部219が周辺物体の点群を抽出する(S12)。これにより、周辺物体の3次元形状を示す点群データを取得することができる。
【0150】
次に、物体検出部219が周辺物体の位置を検出する(S13)。ここで、物体検出部219が、フロアマップ221における周辺物体の位置を検出している。なお、物体検出部219は、周辺物体の位置の変化に基づいて、移動ベクトルを算出してもよい。そして、コスト付与部218は、検出位置に設定された設定領域を2次元のフロアマップ221に投影する(S14)。ここでは、フロアマップ221上に周辺物体の位置等が投影される。
【0151】
コスト付与部218は、周辺物体の検出位置がフロアマップ221上において通路であるか否かを判定する。例えば、フロアマップ221には通路の位置や範囲を示す情報が登録されている。周辺物体の検出位置が通路上にある場合、コスト付与部218は、上述の端点E1~E4を通る設定領域を設定する。例えば、通路では、楕円形や長方形の設定領域が設定される。コスト付与部218は、通路方向を周辺物体の移動方向と予測して、通路方向のサイズが幅方向のサイズよりも大きい設定領域を設定する。周辺物体の検出位置が通路上にない場合、コスト付与部218は等方的な設定領域を抽出する。例えば、通路以外では、円形や正方形の設定領域が設定される。なお、物体検出部219は、周辺物体の移動速度や移動方向を求めてもよい。コスト付与部218は、移動速度や移動方向に応じて、設定領域のサイズや形状を変えてもよい。
【0152】
フロアマップ221上において、各位置(座標)に通路か否かを示す情報が登録されている。よって、コスト付与部218は、周辺物体の検出位置が通路であるか否かを判定することができる。例えば、通路以外の場所、待合室やエレベータホールなどでは、人の移動方向が予測できないため、コスト付与部218が、円形の設定領域を設定する。なお、物体検出部219は、周辺物体の移動速度や移動方向を求めてもよい。コスト付与部218は、移動速度や移動方向に応じて、設定領域のサイズや形状を変えてもよい。
【0153】
コスト付与部218は、設定領域にコストを付与することで、2次元のコストマップ228を生成する(S15)。ここでは、測距センサ24Aの2次元の測距結果に基づいて、推定された自己位置を用いている。つまり、演算処理部21が、測距センサ24Aの測距結果とフロアマップ221とを照合することで、精度の高い自己位置推定が可能となる。そして、コスト付与部218が、推定された自己位置を基準として、周辺物体のコストをマップに投影している。つまり、2次元測距結果で照合されたマップ上に、コストマップが投影される。
【0154】
そして、演算処理部21がコストマップに基づいて、経路計画を修正する(S16)。例えば、元の経路において、コストが所定値以上となっている箇所を通過する場合、経路を変更する。つまり、コストが高くなっている箇所を迂回するように経路を修正する。これにより、効率良く移動することができる。さらに、測距センサ24A,24Bの測距結果に基づいて、移動計画を立案することで、より効率よく移動することが可能となる。そして、移動ロボット20は、修正された経路に沿って移動する。
【0155】
図7は、設定領域の一例を示す図である。
図7では、通路H1と通路H2が交わる三差路を示すマップ図である。通路H1は上下方向を通路方向とし、通路H2は左右方向を通路方向としている。移動ロボット20は、通路H1を下から上に移動している。通路H1と通路H2は直交しているが、直交していなくてもよい。つまり、通路H1と通路H2は平行でなければよく、任意の角度で交差していればよい。
【0156】
移動ロボット20の前方にユーザUBがいる。ユーザUBは通路H1と通路H2の交差点に存在している。この場合、コスト付与部218が、ユーザUBの検出位置に対して設定領域C3aと設定領域C3bとを設定する。設定領域C3aは、設定領域C1と同様に前後方向を長手方向(長軸方向)とする楕円形となっている。設定領域C3bは、通路H2の通路方向(
図7の左右方向)を長手方向(長軸方向)とする楕円形である。したがって、設定領域C3aの長手方向と設定領域C3bの長手方向は直交している。
【0157】
このように、交差点近傍では、通路の延びる方向に応じて、設定領域を拡張することができる。具体的には、通路H2は、通路H1から右方向に延びているため、設定領域C3bはユーザUBから右方向の端点までの距離が長くなっている。このようにすることで、コスト付与部218がより適切にコストを付与することができる。つまり、ユーザUBは、前後方向だけでなく、右方向にも移動する可能性が高い。そのため、コスト付与部218は、右方向の延在した設定領域C3bにコストを付与する。
【0158】
つまり、移動ロボット20の進行方向に延びる通路H1に対して、左右方向において延びる通路H2が合流する場合、左右方向に延びる設定領域C3bにコストを付与する。つまり、コスト付与部218は、設定領域C3a又は設定領域C3bに含まれるグリッドにコストを付与する。このようにすることで、移動ロボット20がより適切に移動することができる。
【0159】
例えば、
図7では、通路H1の右側と通行する経路P1が設定されていたが、移動ロボット20がコストマップに基づいて経路P1を経路P2に修正する。再計画された経路P2は、ユーザUBの左側を通過している。つまり、ユーザUBと左側の壁W1の間を通過するような経路P2に沿って移動ロボット20が移動する。ユーザUBが右方向に移動する可能性があるため、移動ロボット20がユーザUBの左側を通過して、通路H1を進む。これにより、速度を低下させることなく、移動ロボット20が移動することが可能になる。
【0160】
例えば、フロアマップ221、121において、三差路、四差路(十字路)、五差路などの交差点を示す情報が登録されている。フロアマップ221、121には、交差点の位置を示す位置情報が含まれている。さらに、フロアマップ221、121において、各交差点には、各通路の通路方向が登録されている。例えば、
図7では、交差点の中心を基点として、通路H1は南北方向に延びる通路であり、通路H2は東方向に延びる通路であることを示す情報が登録されている。もちろん、2つの通路方向の成す角度は90度に限られるものではない。
【0161】
コスト付与部218はフロアマップ221を参照して、周辺物体の検出位置が交差点に含まれるか否かに判定する。検出位置が交差点内の場合、コスト付与部218が、各通路方向に延びる設定領域を設定する。そして、コスト付与部218が、設定領域にコストを付与する。このようにすることで、コスト付与部218が、適切なコストを付与することができる。移動ロボット20は更新されたコストに基づくコストマップ228を参照して移動する。このようにすることで、交差点周辺においても速度を低下させることなく、移動ロボット20が移動することができる。よって、効率良く移動することができる。
【0162】
なお、上記の説明では、移動ロボット20の移動を制限するための制限情報としてコストを用いたが、制限情報は、コストに限定されるものではない。例えば、移動ロボット20の上限速度を制限情報として用いることができる。つまり、設定領域に進入した場合は、ロボット制御システムが、上限速度を落とすように移動ロボット20を制御してもよい。例えば、設定領域以外では、上限速度(制限速度)が時速5kmであり、設定領域では上限速度が時速2kmとする。移動ロボット20が周辺物体の周辺の設定領域に進入すると、制御システムが速度を時速5kmから時速2kmに減速する。
このようにすることで、移動ロボット20が周辺物体に接触することが無く移動することができる。また、周辺物体の周辺以外では、上限速度を高く設定することができるため、移動ロボット20が高速に移動することができる。よって、移動ロボット20が効率良く移動することができる。
【0163】
あるいは、制限情報は、上限速度を示す情報に限らず、一旦停止するための情報であってもよい。つまり、設定領域に進入した場合は、ロボット制御システムが、移動ロボットを一旦停止する。そして、一旦停止後に移動するようにしてもよい。この場合、低速での移動が可能となるため、より安全に移動することができる。
【0164】
本実施のかかる制御方法は、移動ロボット20単体で行われていてもよく、上位管理装置10で行われていてもよい。また、移動ロボット20及び上位管理装置10が共同して、ロボット制御方法を実行してもよい。つまり、本実施の形態にかかるロボット制御システムは、移動ロボット20内に搭載されていてもよい。あるいは、ロボット制御システムの少なくとも一部又は全部は、移動ロボット20以外の装置、例えば、上位管理装置10に搭載されていてもよい。
【0165】
また、上述した上位管理装置10、又は移動ロボット20等における処理の一部又は全部は、コンピュータプログラムとして実現可能である。このようなプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0166】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態は病院内を搬送ロボットが自律移動するシステムについて説明したが、上述のシステムは、ホテル、レストラン、オフィスビル、イベント会場または複合施設において所定の物品を荷物として搬送できる。
【符号の説明】
【0167】
1 搬送システム
10 上位管理装置
11 演算処理部
12 記憶部
13 バッファメモリ
14 通信部
20 移動ロボット
21 演算処理部
22 記憶部
23 通信部
24 距離センサ群
25 カメラ
26 駆動部
27 表示部
28 操作受付部
111 ロボット制御部
115 ルート計画部
118 コスト付与部
121 フロアマップ
122 ロボット制御パラメータ
123 ロボット情報
125 ルート計画情報
126 搬送物情報
128 コストマップ
211 移動命令抽出部
212 駆動制御部
218 コスト付与部
219 物体検出部
221 フロアマップ
222 ロボット制御パラメータ
226 搬送物情報
241 前後距離センサ
242 左右距離センサ
260 台車部
261 駆動輪
262 キャスタ
281 操作インタフェース
290 本体部
291 収納庫
292 扉
400 ユーザ端末
610 通信ユニット