(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】制御システム、制御方法、及びプログラム
(51)【国際特許分類】
G05D 1/243 20240101AFI20241008BHJP
G05D 1/43 20240101ALI20241008BHJP
【FI】
G05D1/243
G05D1/43
(21)【出願番号】P 2022078009
(22)【出願日】2022-05-11
【審査請求日】2024-01-25
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】吉川 恵
(72)【発明者】
【氏名】小田 志朗
(72)【発明者】
【氏名】清水 奨
(72)【発明者】
【氏名】松井 毅
【審査官】田中 友章
(56)【参考文献】
【文献】特開2021-086199(JP,A)
【文献】特開2013-225253(JP,A)
【文献】特開2020-144591(JP,A)
【文献】特開2020-035228(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/243
G05D 1/43
(57)【特許請求の範囲】
【請求項1】
カメラが撮像した撮像画像内の人の特徴を抽出する特徴抽出部と、
前記特徴の抽出結果に基づいて、前記撮像画像に含まれている人物が、移動を補助する補助器具を使用している器具使用者であるか否かを判定する第1判定部と、
前記特徴の抽出結果に基づいて、前記器具使用者の移動を補助する補助者の有無を判定する第2判定部と、
前記補助者の有無に応じて、第1モードと、前記第1モードよりも低負荷の処理を行う第2モードとを切替える制御部と、を備えた制御システム。
【請求項2】
機械学習モデルを用いて、前記撮像画像に含まれる人を、予め設定された第1グループと第2グループの分類を行う分類器をさらに備えた請求項1に記載の制御システム。
【請求項3】
モードによって、機械学習モデルのネットワークレイヤを変える請求項2に記載の制御システム。
【請求項4】
モードによって、前記カメラの画像のピクセル数、前記カメラのフレームレート、GPUの使用コア数、GPUの使用率上限を変える請求項1~3のいずれか1項に記載の制御システム。
【請求項5】
前記第1モードでは、サーバが複数のカメラから画像を収集して、処理を行い、前記第2モードでは前記カメラに設けられたエッジデバイス単独で処理を行う請求項1~3のいずれか1項に記載の制御システム。
【請求項6】
施設内を移動する移動ロボットをさらに備え、
前記補助者の有無に応じて、移動ロボットの制御を切り替える請求項1~3のいずれか1項に記載の制御システム。
【請求項7】
カメラが撮像した撮像画像内の人の特徴を抽出するステップと、
前記特徴の抽出結果に基づいて、前記撮像画像に含まれている人物が、移動を補助する補助器具を使用している器具使用者であるか否かを判定するステップと、
前記特徴の抽出結果に基づいて、前記器具使用者の移動を補助する補助者の有無を判定するステップと、
前記補助者の有無に応じて、第1モードと、前記第1モードよりも低負荷の処理を行う第2モードと、を切替えるステップと、を備えた制御方法。
【請求項8】
機械学習モデルを用いて、前記撮像画像に含まれる人を、予め設定された第1グループと第2グループの分類を行うステップをさらに備えた請求項7に記載の制御方法。
【請求項9】
モードによって、機械学習モデルのネットワークレイヤを変える請求項8に記載の制御方法。
【請求項10】
モードによって、前記カメラの画像のピクセル数、前記カメラのフレームレート、GPUの使用コア数、GPUの使用率上限を変える請求項7~9のいずれか1項に記載の制御方法。
【請求項11】
前記第1モードでは、サーバが複数のカメラから画像を収集して、処理を行い、前記第2モードでは前記カメラに設けられたエッジデバイス単独で処理を行う請求項7~9のいずれか1項に記載の制御方法。
【請求項12】
前記補助者の有無に応じて、移動ロボットの制御を切り替える請求項7~9のいずれか1項に記載の制御方法。
【請求項13】
コンピュータに制御方法を実行させるためのプログラムであって、
前記制御方法は、
カメラが撮像した撮像画像内の人の特徴を抽出するステップと、
前記特徴の抽出結果に基づいて、前記撮像画像に含まれている人物が、移動を補助する補助器具を使用している器具使用者であるか否かを判定するステップと、
前記特徴の抽出結果に基づいて、前記器具使用者の移動を補助する補助者の有無を判定するステップと、
前記補助者の有無に応じて、第1モードと、前記第1モードよりも低負荷の処理を行う第2モードと、を切替えるステップと、を備えたプログラム。
【請求項14】
前記制御方法は、機械学習モデルを用いて、前記撮像画像に含まれる人を、予め設定された第1グループと第2グループの分類を行うステップをさらに備えた請求項13に記載のプログラム。
【請求項15】
モードによって、機械学習モデルのネットワークレイヤを変える請求項14に記載のプログラム。
【請求項16】
モードによって、前記カメラの画像のピクセル数、前記カメラのフレームレート、GPUの使用コア数、GPUの使用率上限を変える請求項13~15のいずれか1項に記載のプログラム。
【請求項17】
前記第1モードでは、サーバが複数のカメラから画像を収集して、処理を行い、前記第2モードでは前記カメラに設けられたエッジデバイス単独で処理を行う請求項13~15のいずれか1項に記載のプログラム。
【請求項18】
前記補助者の有無に応じて、移動ロボットの制御を切り替える請求項13~15のいずれか1項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システム、制御方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、搬送ロボットを備えた自律移動システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような搬送ロボットでは、より効率よく搬送することが望まれる。例えば、搬送ロボットの周囲に人がいる場合、人を回避して移動することが望まれる。しかしながら、人の動作をよくすることが困難であるため、適切な制御を行うことができない場合がある。例えば,人が周辺にいる状況下では、低速で移動させる必要がある。よって、より効率的に搬送ロボットを移動させるための制御が望まれる。
【0005】
本開示は、このような問題を解決するためになされたものであり、状況に応じて、適切な制御を行うことができる制御システム、制御方法、及びプログラムを提供するものである。
【課題を解決するための手段】
【0006】
本実施の形態にかかる制御システムは、カメラが撮像した撮像画像内の人の特徴を抽出する特徴抽出部と、前記特徴の抽出結果に基づいて、前記撮像画像に含まれている人物が、移動を補助する補助器具を使用している器具使用者であるか否かを判定する第1判定部と、前記特徴の抽出結果に基づいて、前記器具使用者の移動を補助する補助者の有無を判定する第2判定部と、前記補助者の有無に応じて、第1モードと、前記第1モードよりも低負荷の処理を行う第2モードとを切替える制御部と、を備えている。
【0007】
上記の制御システムは、機械学習モデルを用いて、前記撮像画像に含まれる人を、予め設定された第1グループと第2グループの分類を行う分類器をさらに備えていてもよい。
【0008】
上記の制御システムにおいて、モードによって、機械学習モデルのネットワークレイヤを変えてもよい。
【0009】
上記の制御システムにおいて、モードによって、前記カメラの画像のピクセル数、前記カメラのフレームレート、GPUの使用コア数、GPUの使用率上限を変えてもよい。
【0010】
上記の制御システムにおいて、前記第1モードでは、サーバが複数のカメラから画像を収集して、処理を行い、前記第2モードでは前記カメラに設けられたエッジデバイス単独で処理を行うようにしてもよい。
【0011】
上記の制御システムにおいて、施設内を移動する移動ロボットをさらに備え、前記補助者の有無に応じて、移動ロボットの制御を切り替えるようにしてもよい。
【0012】
本実施の形態にかかる制御方法は、カメラが撮像した撮像画像内の人の特徴を抽出するステップと、前記特徴の抽出結果に基づいて、前記撮像画像に含まれている人物が、移動を補助する補助器具を使用している器具使用者であるか否かを判定するステップと、前記特徴の抽出結果に基づいて、前記器具使用者の移動を補助する補助者の有無を判定するステップと、前記補助者の有無に応じて、第1モードと、前記第1モードよりも低負荷の処理を行う第2モードと、を切替えるステップと、を備えている。
【0013】
上記の制御方法は、機械学習モデルを用いて、前記撮像画像に含まれる人を、予め設定された第1グループと第2グループの分類を行うステップをさらに備えていてもよい。
【0014】
上記の制御方法において、モードによって、機械学習モデルのネットワークレイヤを変えてもよい。
【0015】
上記の制御方法において、モードによって、前記カメラの画像のピクセル数、前記カメラのフレームレート、GPUの使用コア数、GPUの使用率上限を変えてもよい。
【0016】
上記の制御方法において、前記第1モードでは、サーバが複数のカメラから画像を収集して、処理を行い、前記第2モードでは前記カメラに設けられたエッジデバイス単独で処理を行うようにしてもよい。
【0017】
上記の制御方法において、施設内を移動する移動ロボットをさらに備え、前記補助者の有無に応じて、移動ロボットの制御を切り替えるようにしてもよい。
【0018】
本実施の形態にかかるプログラムは、コンピュータに制御方法を実行させるためのプログラムであって、前記制御方法は、カメラが撮像した撮像画像内の人の特徴を抽出するステップと、前記特徴の抽出結果に基づいて、前記撮像画像に含まれている人物が、移動を補助する補助器具を使用している器具使用者であるか否かを判定するステップと、前記特徴の抽出結果に基づいて、前記器具使用者の移動を補助する補助者の有無を判定するステップと、前記補助者の有無に応じて、第1モードと、前記第1モードよりも低負荷の処理を行う第2モードと、を切替えるステップと、を備えている。
【0019】
上記のプログラムにおいて、制御方法は、機械学習モデルを用いて、前記撮像画像に含まれる人を、予め設定された第1グループと第2グループの分類を行うステップをさらに備えていてもよい。
【0020】
上記のプログラムにおいて、モードによって、機械学習モデルのネットワークレイヤを変えてもよい。
【0021】
上記のプログラムにおいて、モードによって、前記カメラの画像のピクセル数、前記カメラのフレームレート、GPUの使用コア数、GPUの使用率上限を変えてもよい。
【0022】
上記のプログラムにおいて、前記第1モードでは、サーバが複数のカメラから画像を収集して、処理を行い、前記第2モードでは前記カメラに設けられたエッジデバイス単独で処理を行うようにしてもよい。
【0023】
上記のプログラムにおいて、施設内を移動する移動ロボットをさらに備え、前記補助者の有無に応じて、移動ロボットの制御を切り替えるようにしてもよい。
【発明の効果】
【0024】
本開示によれば、状況に応じて、効率よく制御を行うことができる制御システム、制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0025】
【
図1】本実施形態に係る移動ロボットが利用されるシステムの全体構成を説明するための概念図である。
【
図2】本実施形態に係る制御システムの制御ブロック図である。
【
図4】モード制御の制御系を示す制御ブロック図である。
【
図6】実施形態にかかる制御方法を示すフローチャートである。
【
図7】変形例にかかるモード制御の制御系を示す制御ブロック図である。
【
図8】スタッフ情報の一例を説明するための表である。
【
図9】変形例にかかる制御方法を示すフローチャートである。
【
図10】モード制御の実施例を説明するための図である。
【発明を実施するための形態】
【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】
さらに、施設のユーザには、施設で働くスタッフと、それ以外の非スタッフがいる。ここで、施設が病院である場合、非スタッフとしては、患者、入院患者、訪問者、外来患者、付き添い者等がいる。スタッフとしては、医師、看護師、薬剤師、事務員、作業療法士、各種従業員がいる。また、スタッフは各種物品の搬入者、メンテナンス業者、清掃員等を含んでいてもよい。スタッフは病院の直接の雇用者や被雇用者に限られるものではなく、関連する従業者を含んでいてもよい。
【0043】
移動ロボット20は、病院のスタッフと非スタッフとが混在する環境を、これらの人物と接触しないように移動する。具体的には、移動ロボット20は、周辺の人物と接触しない程度の速度で移動したり、予め設定された距離よりも近くに物体が存在する場合には速度をさらに落としたり、停止したりする。また移動ロボット20は、自律移動により物体を回避する行動をとったり、周辺に移動ロボット20の存在を通知するための音声や光を発したりすることもできる。
【0044】
移動ロボット20を適切に制御するためには、上位管理装置10は、施設の状況に応じて、適切に施設をモニタする必要がある。具体的には、上位管理装置10は、ユーザが移動を補助するための補助器具を使用している器具使用者か否かを判定している。補助器具とは車椅子、松葉杖、杖、点滴台、歩行器などである。補助器具を使用しているユーザを器具使用者ともいう。さらに、上位管理装置10は、器具使用者の周囲に、移動を補助する補助者がいるか否かを判定する。補助者は、看護師、家族などであり、器具使用者の移動をサポートする。
【0045】
例えば、器具使用者が車椅子を使用している場合、補助者は車椅子を押すことで、移動をサポートする。また、器具使用者が松葉杖を使用している場合、補助者は器具使用者の体重を支えて、移動をサポートする。器具使用者の周囲に補助者がいない場合、器具使用者は速やかな移動が困難となることが多い。器具使用者単独で移動している場合、とっさに方向転換を行うことができないおそれがあるため、移動ロボットのタスクの邪魔となる動作を行うおそれがある。
【0046】
器具使用者が単独で移動している場合、器具使用者の周辺のエリアの監視を強化する必要がある。そして、移動ロボット20が器具使用者に近づかないように、上位管理装置10は、移動ロボット20を制御する。上位管理装置10は、監視のための処理負荷を高くする。換言すると、器具使用者が補助者無しで移動している領域では、上位管理装置10が、処理負荷の高い第1モード(高負荷モード)で処理を行う。第1モードで監視を行うことで、器具使用者の位置を正確に検出することができる。
【0047】
一方、器具使用者が補助者とともに移動している領域では、上位管理装置10が、第1モードよりも処理負荷の低い第2モード(低負荷モード)で処理を行う。つまり、かつ単独で移動している器具使用者がいない場合、上位管理装置10が、第2モードで処理を行う。全ての器具使用者が補助者とともに移動している場合、上位管理装置10が第1モードよりも処理負荷を軽減する。
【0048】
本実施の形態では、上位管理装置10がカメラに写った人が器具使用者であるか否かを判定している(以下、第1判定ともいう)。そして、ユーザが器具使用者である場合、上位管理装置10が器具使用者の移動を補助する補助者がいるか否かを判定している(以下、第2判定ともいう)。例えば、器具使用者の近傍に他のユーザがいる場合、そのユーザを補助者として判定する。そして、上位管理装置10は、第1判定及び第2判定の結果に基づいて、処理負荷を変更している。
【0049】
補助者無しで器具使用者が移動している領域では、上位管理装置10が、処理負荷の高い第1モードで処理を行う。器具使用者が存在し、かつ補助者無しで移動している器具使用者が存在しない領域では、上位管理装置10が、処理負荷の低い第2モードで処理を行う。
【0050】
これにより、施設の利用状況に応じて、適切に制御を行うことができる。つまり、器具使用者が単独で移動している場合、より監視を強化して、移動ロボット20のタスクに与える影響を軽減する。これにより、効率良く搬送タスクを実行することができる。
【0051】
さらに、施設を複数の監視対象領域に分けて、監視対象領域毎にモードを切替えるようにしてもよい。例えば、単独で移動している器具使用者がいる監視対象領域では、上位管理装置10が、高負荷モードで監視を行う。単独で移動している器具使用者がいない監視対象領域では、上位管理装置10が、低負荷モードで監視を行う。これにより、より効率良く搬送タスクを実行することができる。また、複数の監視対象領域に分割する場合、各監視対象領域を監視する環境カメラ300を予め割り当てておいても良い。つまり、環境カメラ300の撮像範囲に応じて、監視対象領域を設定しておくことができる。
【0052】
(制御ブロック図)
図2は、システム1の制御系を示す制御ブロック図を示す。
図2に示すように、システム1は、上位管理装置10、移動ロボット20、環境カメラ300を有する。
【0053】
このシステム1は、所定の施設内において移動ロボット20を自律的に移動させながら、複数の移動ロボット20を効率的に制御する。そのため、施設内には、複数個の環境カメラ300が設置されている。例えば、環境カメラ300は、施設内の通路、ホール、エレベータ、出入り口等に設置されている。
【0054】
環境カメラ300は、移動ロボット20が移動する範囲の画像を取得する。なお、システム1では、環境カメラ300で取得された画像やそれに基づく情報は、上位管理装置10が収集する。あるいは、環境カメラ300で取得された画像等が直接移動ロボットに送信されてもよい。環境カメラ300は、施設内の通路や出入り口に設けられた監視カメラなどであってもよい。環境カメラ300は、施設内の混雑状況の分布を求めるために使用されていてもよい。
【0055】
実施の形態1にかかるシステム1では、上位管理装置10が搬送依頼情報に基づいて、ルート計画を行う。上位管理装置10が作成したルート計画情報に基づいて、それぞれの移動ロボット20に行き先を指示する。そして、移動ロボット20は、上位管理装置10から指定された行き先に向かって自律移動する。移動ロボット20は、自機に設けられたセンサ、フロアマップ、位置情報等を用いて行き先(目的地)に向かって自律移動する。
【0056】
例えば、移動ロボット20は、その周辺の機器、物体、壁、人(以下、まとめて周辺物体とする)に接触しないように、走行する。具体的には、移動ロボット20は、周辺物体までの距離を検知し、周辺物体から一定の距離(距離閾値とする)以上離れた状態で走行する。周辺物体までの距離が距離閾値以下になると、移動ロボット20が減速または停止する。このようにすることで、移動ロボット20が、周辺物体に接触せずに走行可能となる。接触を回避することができるため、安全かつ効率的な搬送が可能となる。
【0057】
上位管理装置10は、演算処理部11、記憶部12、バッファメモリ13、通信部14を有する。演算処理部11は、移動ロボット20を制御及び管理するための演算を行う。演算処理部11は、例えば、コンピュータの中央演算処理装置(CPU:Central Processing Unit)等のプログラムを実行可能な装置として実装可能である。そして、各種機能はプログラムにより実現することもできる。
図2では、演算処理部11において特徴的なロボット制御部111、ルート計画部115、搬送物情報取得部116のみを示したが、その他の処理ブロックも備えられる。
【0058】
ロボット制御部111は、移動ロボット20を遠隔で制御するための演算を行い、制御信号を生成する。ロボット制御部111は、ルート計画情報125などに基づいて制御信号を生成する。さらに、環境カメラ300や移動ロボット20から得られた各種情報に基づいて、制御信号を生成する。制御信号は、フロアマップ121、ロボット情報123及びロボット制御パラメータ122等の更新情報を含んでいてもよい。つまり、ロボット制御部111は、各種情報が更新された場合、その更新情報に応じた制御信号を生成する。
【0059】
搬送物情報取得部116は、搬送物に関する情報を取得する。搬送物情報取得部116は、移動ロボット20が搬送中の搬送物の内容(種別)に関する情報を取得する。搬送物情報取得部116は、エラーが発生した移動ロボット20が搬送中の搬送物に関する搬送物情報を取得する。
【0060】
ルート計画部115は、各移動ロボット20のルート計画を行う。搬送タスクが入力されると、ルート計画部115は、搬送依頼情報に基づいて、当該搬送物を搬送先(目的地)までの搬送するためのルート計画を行う。具体的には、ルート計画部115は、記憶部12に既に記憶されているルート計画情報125やロボット情報123等を参照して、新たな搬送タスクを実行する移動ロボット20を決定する。出発地は、移動ロボット20の現在位置や、直前の搬送タスクの搬送先、搬送物の受取先などである。目的地は、搬送物の搬送先、待機場所、充電場所などである。
【0061】
ここでは、ルート計画部115は、移動ロボット20の出発地から目的地までの通過ポイントを設定している。ルート計画部115は、移動ロボット20毎に、その通過ポイントの通過順を設定する。通過ポイントは、例えば、分岐点、交差点、エレベータ前のロビーやこれらの周辺に設定されている。また、幅の狭い通路では、移動ロボット20のすれ違いが困難となることもある。このような場合、幅の狭い通路の手前を通過ポイントして設定してもよい。通過ポイントの候補は、予めフロアマップ121に登録されていてもよい。
【0062】
ルート計画部115は、システム全体として効率良くタスクを実行できるように、複数の移動ロボット20の中から、各搬送タスクを行う移動ロボット20を決定する。ルート計画部115は、待機中の移動ロボット20や搬送元に近い移動ロボット20に搬送タスクを優先的に割り当てる。
【0063】
ルート計画部115は、搬送タスクが割り当てられた移動ロボット20について、出発地及び目的地を含む通過ポイントを設定する。例えば、搬送元から搬送先までの2以上の移動経路がある場合、より短時間で移動できるように通過ポイントを設定する。そのため、上位管理装置10は、カメラの画像等に基づいて、通路の混雑状況を示す情報を更新する。具体的には、他の移動ロボット20が通過している場所、人が多い場所は混雑度が高い。したがって、ルート計画部115は、混雑度が高い場所を避けるように、通過ポイントを設定する。
【0064】
移動ロボット20は、左回りの移動経路又は右回りの移動経路のいずれでも目的地まで移動できるような場合がある。このような場合、ルート計画部115は、混雑していないほうの移動経路を通過するように通過ポイントを設定する。ルート計画部115が、目的地までの間に、1又は複数の通過ポイントを設定することで、移動ロボット20が混雑していない移動経路で移動することができる。例えば、分岐点、交差点で通路が分かれている場合、ルート計画部115は、適宜、分岐点、交差点、曲がり角及びその周辺に通過ポイントを設定する。これにより、搬送効率を向上することができる。
【0065】
ルート計画部115は、エレベータの混雑状況や、移動距離などを考慮して、通過ポイントを設定してもよい。さらに、上位管理装置10は、移動ロボット20がある場所を通過する予定時刻における、移動ロボット20の数や人の数を推定してもよい。そして、推定された混雑状況に応じて、ルート計画部115が通過ポイントを設定してもよい。また、ルート計画部115は、混雑状況の変化に応じて、通過ポイントを動的に変えてもよい。ルート計画部115は、搬送タスクを割り当てた移動ロボット20について、通過ポイントを順番に設定する。通過ポイントは、搬送元や搬送先を含んでいてもよい。移動ロボット20が、ルート計画部115により設定された通過ポイントを順番に通過するように自律移動する。
【0066】
モード制御部117は、施設の状況に応じて、モードを切替えるための制御を行う。例えば、モード制御部117は、状況に応じて、第1モードと第2モードとを切替える。第2モードはプロセッサ等の処理負荷が低い低負荷モードである。第1モードは、プロセッサ等の処理負荷が高い高負荷モードである。第1モードでは、第2モードよりもプロセッサ等の処理負荷が高くなる。よって、施設の状況に応じてモードを切替えることで、処理負荷を軽減することができ、消費電力を低減することができる。モード制御部117の制御については後述する。
【0067】
記憶部12は、ロボットの管理及び制御に必要な情報を格納する記憶部である。
図2の例では、フロアマップ121、ロボット情報123、ロボット制御パラメータ122、ルート計画情報125、搬送物情報126、スタッフ情報128、モード情報129を示したが、記憶部12に格納される情報はこれ以外にあっても構わない。演算処理部11では、各種処理を行う際に記憶部12に格納されている情報を用いた演算を行う。また、記憶部12に記憶されている各種情報は最新の情報に更新可能である。
【0068】
フロアマップ121は、移動ロボット20を移動させる施設の地図情報である。このフロアマップ121は、予め作成されるものでもよいし、移動ロボット20から得た情報から生成されるものでもよく、また、予め作成された基本地図に移動ロボット20から得た情報から生成された地図修正情報を加えたものであってもよい。
【0069】
例えば、フロアマップ121には、施設の壁面、ゲート、扉、階段、エレベータ、固定棚などの位置やその情報が格納されている。フロアマップ121は、2次元のグリッドマップとして表現されていてもよい。この場合、フロアマップ121では、各グリッドに壁や扉なの情報が付されている。
【0070】
ロボット情報123は、上位管理装置10が管理する移動ロボット20のID、型番、仕様等が記述される。ロボット情報123は、移動ロボット20の現在位置を示す位置情報を含んでいてもよい。ロボット情報123は、移動ロボット20がタスクを実行中か、待機中かの情報を含んでいてもよい。また、ロボット情報123は、移動ロボット20が動作中か、故障中か等を示す情報を含んでいてもよい。また、ロボット情報123は、搬送可能な搬送物、搬送不可な搬送物の情報を含んでいてもよい。
【0071】
ロボット制御パラメータ122は、上位管理装置10が管理する移動ロボット20についての周辺物体との閾値距離等の制御パラメータが記述される。閾値距離は、人を含む周辺物体との接触を回避するためのマージン距離となる。さらに、ロボット制御パラメータ122は、移動ロボット20の移動速度の速度上限値などの動作強度に関する情報を含んでいても良い。
【0072】
ロボット制御パラメータ122は、状況に応じて更新されてもよい。ロボット制御パラメータ122は、収納庫291の収容スペースの空き状況や使用状況を示す情報を含んでいてもよい。ロボット制御パラメータ122は、搬送可能な搬送物や、搬送不可能な搬送物の情報を含んでいても良い。ロボット制御パラメータ122は、それぞれの移動ロボット20に対して、上記の各種情報が対応付けられている。
【0073】
ルート計画情報125は、ルート計画部115で計画されたルート計画情報を含んでいる。ルート計画情報125は、例えば、搬送タスクを示す情報を含んでいる。ルート計画情報125は、タスクが割り当てられた移動ロボット20のID、出発地、搬送物の内容、搬送先、搬送元、搬送先への到着予定時間、搬送元への到着予定時間、到着期限などの情報を含んでいても良い。ルート計画情報125では、搬送タスク毎に、上述した各種情報が対応付けられていてもよい。ルート計画情報125は、ユーザU1から入力された搬送依頼情報の少なくとも一部を含んでいても良い。
【0074】
さらに、ルート計画情報125は、それぞれの移動ロボット20や搬送タスクについて、通過ポイントに関する情報を含んでいてもよい。例えば、ルート計画情報125は、それぞれの移動ロボット20についての通過ポイントの通過順を示す情報を含んでいる。ルート計画情報125は、フロアマップ121における各通過ポイントの座標や、通過ポイントを通過したか否かの情報を含んでいてもよい。
【0075】
搬送物情報126は、搬送依頼が行われた搬送物に関する情報である。例えば、搬送物の内容(種別)、搬送元、搬送先等の情報を含んでいる。搬送物情報126は、搬送を担当する移動ロボット20のIDを含んでいても良い。さらに、搬送物情報は、搬送中、搬送前(搭載前)、搬送済みなどのステータスを示す情報を含んでいてもよい。搬送物情報126は搬送物毎にこれらの情報が対応付けられている。
【0076】
スタッフ情報128は施設のユーザがスタッフであるか否かを分類するための情報である。つまり、スタッフ情報128は、画像データに含まれる人物を第1グループまたは第2グループに分類するための情報を含む。例えば、スタッフ情報128は、予め登録されたスタッフに関する情報を含んでいる。スタッフ情報については、変形例で詳述する。モード情報129は、判定結果から各モードを制御するための情報を含む。モード情報129の詳細は後述する。
【0077】
なお、ルート計画部115は、記憶部12に記憶されている各種情報を参照して、ルート計画を策定する。例えば、フロアマップ121、ロボット情報123、ロボット制御パラメータ122、ルート計画情報125に基づいて、タスクを実行する移動ロボット20を決定する。そして、ルート計画部115は、フロアマップ121等を参照して、搬送先までの通過ポイントとその通過順を設定する。フロアマップ121には、予め通過ポイントの候補が登録されている。そして、ルート計画部115が混雑状況等に応じて、通過ポイントを設定する。また、タスクを連続処理する場合などは、ルート計画部115が搬送元及び搬送先を通過ポイントして設定してもよい。
【0078】
なお、1つの搬送タスクについて、2つ以上の移動ロボット20が割り当てられていてもよい。例えば、搬送物が移動ロボット20の搬送可能容量よりも大きい場合、1つの搬送物を2つに分けて、2つの移動ロボット20に搭載する。あるいは、搬送物が移動ロボット20の搬送可能重量よりも重い場合、1つの搬送物を2つに分けて、2つの移動ロボット20に搭載する。このようにすることで、1つの搬送タスクを2つ以上の移動ロボット20が分担して実行することができる。もちろん、異なるサイズの移動ロボット20を制御する場合、搬送物を搬送可能な移動ロボット20が搬送物を受け取るようにルート計画を行ってもよい。
【0079】
さらには、1つの移動ロボット20が、2つ以上の搬送タスクを並行して行ってもよい。例えば、1つの移動ロボット20が2つ以上の搬送物を同時に搭載して、異なる搬送先に順次搬送してもよい。あるいは、1つ移動ロボット20が1つの搬送物を搬送中に、他の搬送物を搭載してもよい。また、異なる場所で搭載された搬送物の搬送先は同じであってもよく、異なっていてもよい。このようにすることで、タスクを効率よく実行することができる。
【0080】
このような場合、移動ロボット20の収容スペースについて、使用状況又は空き状況を示す収容情報を更新するようにしてもよい。つまり、上位管理装置10が空き状況を示す収容情報を管理して、移動ロボット20を制御してもよい。例えば、搬送物の搭載又は受取が完了すると、収容情報が更新される。搬送タスクが入力されると、上位管理装置10は、収容情報を参照して、搬送物を搭載可能な空きがある移動ロボット20を受け取りに向かわせる。このようにすることで、1つの移動ロボット20が、同時に複数の搬送タスクを実行することや、2つ以上の移動ロボット20が搬送タスクを分担して実行することが可能になる。例えば、移動ロボット20の収容スペースにセンサを設置して空き状況を検出しても良い。また、搬送物毎にその容量や重さが予め登録されていてもよい。
【0081】
バッファメモリ13は、演算処理部11における処理において生成される中間情報を蓄積するメモリである。通信部14は、システム1が用いられる施設に設けられる複数の環境カメラ300及び少なくとも1台の移動ロボット20と通信するための通信インタフェースである。通信部14は、有線通信と無線通信の両方の通信を行うことができる。例えば、通信部14は、それぞれの移動ロボット20に対して、その移動ロボット20の制御に必要な制御信号を送信する。また、通信部14は、移動ロボット20や環境カメラ300で収集された情報を受信する。
【0082】
移動ロボット20は、演算処理部21、記憶部22、通信部23、近接センサ(例えば、距離センサ群24)、カメラ25、駆動部26、表示部27、操作受付部28を有する。なお、
図2では、移動ロボット20に備えられている代表的な処理ブロックのみを示したが、移動ロボット20には図示していない他の処理ブロックも多く含まれる。
【0083】
通信部23は、上位管理装置10の通信部14と通信を行うための通信インタフェースである。通信部23は、例えば、無線信号を用いて通信部14と通信を行う。距離センサ群24は、例えば、近接センサであり、移動ロボット20の周囲に存在する物又は人との距離を示す近接物距離情報を出力する。距離センサ群24はライダなどの測距センサを有している。光信号の出射方向を操作していくことで、周辺物体までの距離を測定することができる。また,測距センサ等で検出された点群データから、周辺物体を認識してもよい。カメラ25は、例えば、移動ロボット20の周囲の状況を把握するための画像を撮影する。また、カメラ25は、例えば、施設の天井等に設けられる位置マーカーを撮影することもできる。この位置マーカーを用いて移動ロボット20に自機の位置を把握させてもよい。
【0084】
駆動部26は、移動ロボット20に備え付けられている駆動輪を駆動する。なお、駆動部26は、駆動輪やその駆動モータの回転回数を検出するエンコーダなどを有していてもよい。エンコーダの出力に応じて、自機位置(現在位置)が推定されていても良い。移動ロボット20は、自身の現在位置を検出して、上位管理装置10に送信する。移動ロボット20は、オドメトリーなどによりフロアマップ121における自己位置を推定している。
【0085】
表示部27及び操作受付部28はタッチパネルディスプレイにより実現される。表示部27は、操作受付部28となるユーザーインタフェース画面を表示する。また、表示部27には、移動ロボット20の行き先や移動ロボット20の状態を示す情報を表示させても構わない。操作受付部28は、ユーザからの操作を受け付ける。操作受付部28は、表示部27に表示されるユーザーインタフェース画面に加えて、移動ロボット20に設けられる各種スイッチを含む。
【0086】
演算処理部21は、移動ロボット20の制御に用いる演算を行う。演算処理部21は、例えば、コンピュータの中央演算処理装置(CPU:Central Processing Unit)等のプログラムを実行可能な装置として実装可能である。そして、各種機能はプログラムにより実現することもできる。演算処理部21は、移動命令抽出部211、駆動制御部212、モード制御部217を有する。なお、
図2では、演算処理部21が有する代表的な処理ブロックのみを示したが、図示しない処理ブロックも含まれる。演算処理部21は、通過ポイント間の経路を探索しても良い。
【0087】
移動命令抽出部211は、上位管理装置10から与えられた制御信号から移動命令を抽出する。例えば、移動命令は、次の通過ポイントに関する情報を含んでいる。例えば、制御信号は、通過ポイントの座標や、通過ポイントの通過順に関する情報を含んでいてもよい。そして、移動命令抽出部211が、これらの情報を移動命令として抽出する。
【0088】
さらに、移動命令は、次の通過ポイントへの移動が可能になったことを示す情報を含んでいてもよい。通路幅が狭いと、移動ロボット20がすれ違うことできない場合がある。また、一時的に通路を通行できない場合がある。このような場合、制御信号は、停止すべき場所の手前の通過ポイントで、移動ロボット20を停止させる命令を含んでいる。そして、他の移動ロボット20が通過した後や通行可能となった後に、上位管理装置10が移動ロボット20に移動可能なことになったことを知らせる制御信号を出力する。これにより、一時的に停止していた移動ロボット20が移動を再開する。
【0089】
駆動制御部212は、移動命令抽出部211から与えられた移動命令に基づいて、移動ロボット20を移動させるように、駆動部26を制御する。例えば、駆動部26は、駆動制御部212からの制御指令値に応じて回転する駆動輪を有している。移動命令抽出部211は、上位管理装置10から受信した通過ポイントに向かって移動ロボット20が移動するように、移動命令を抽出する。そして、駆動部26が駆動輪を回転駆動する。移動ロボット20は、次の通過ポイントに向かって自律移動する。このようにすることで、通過ポイントを順番に通過して、搬送先に到着する。また、移動ロボット20は、自機位置を推定して、通過ポイントを通過したことを示す信号を上位管理装置10に送信しても良い。これにより、上位管理装置10が、各移動ロボット20の現在位置や搬送状況を管理することができる。
【0090】
モード制御部217は、状況に応じてモードを切替えるための制御を行う。モード制御部217は、モード制御部117と同様の処理を行ってもよい。上位管理装置10のモード制御部117の一部の処理を行ってもよい。つまり、モード制御部117とモード制御部217が協働してモードを制御するための処理を行ってもよい。また、モード制御部117とは独立して処理を行ってもよい。モード制御部217は、モード制御部117の処理負荷よりも低い処理を行う。
【0091】
記憶部22には、フロアマップ221とロボット制御パラメータ222と搬送物情報226が格納される。
図2に示したのは、記憶部22に格納される情報の一部で有り、
図2に示したフロアマップ221とロボット制御パラメータ222と搬送物情報226以外の情報も含まれる。フロアマップ221は、移動ロボット20を移動させる施設の地図情報である。このフロアマップ221は、例えば、上位管理装置10のフロアマップ121をダウンロードしたものである。なお、フロアマップ221は、予め作成されたものであってもよい。また、フロアマップ221は、施設全体の地図情報ではなく、移動予定の領域を部分的に含む地図情報であってもよい。
【0092】
ロボット制御パラメータ222は、移動ロボット20を動作させるためのパラメータである。ロボット制御パラメータ222には、例えば、周辺物体との距離閾値が含まれる。さらに、ロボット制御パラメータ222には、移動ロボット20の速度上限値が含まれている。
【0093】
搬送物情報226は、搬送物情報126と同様に搬送物に関する情報を含んでいる。搬送物の内容(種別)、搬送元、搬送先等の情報を含んでいる。搬送物情報は、搬送中、搬送前(搭載前)、搬送済みなどのステータスを示す情報を含んでいてもよい。搬送物情報226は搬送物毎にこれらの情報が対応付けられている。搬送物情報126については後述する。搬送物情報226は、移動ロボット20が搬送する搬送物に関する情報を含んでいればよい。したがって、搬送物情報226は搬送物情報126の一部となる。つまり、搬送物情報226は、他の移動ロボット20が搬送する情報を含んでいなくても良い。
【0094】
駆動制御部212は、ロボット制御パラメータ222を参照して、距離センサ群24から得られた距離情報が示す距離が距離閾値を下回ったことに応じて動作を停止或いは減速をする。駆動制御部212は、速度上限値以下の速度で走行するように、駆動部26を制御する。駆動制御部212は、速度上限値以上の速度で移動ロボット20が移動しないように、駆動輪の回転速度を制限する。
【0095】
(移動ロボット20の構成)
ここで、移動ロボット20の外観について説明する。
図3は、移動ロボット20の概略図を示す。
図3に示す移動ロボット20は、移動ロボット20の態様の1つであり、他の形態であってもよい。なお、
図3では、x方向が移動ロボット20の前進方向及び後進方向、y方向が移動ロボット20の左右方向であり、z方向が移動ロボット20の高さ方向である。
【0096】
移動ロボット20は、本体部290と、台車部260とを備えている。台車部260の上に、本体部290が搭載されている。本体部290と、台車部260とそれぞれ直方体状の筐体を有しており、この筐体内部に各構成要素が搭載されている。例えば、台車部260の内部には駆動部26が収容されている。
【0097】
本体部290には、収容スペースとなる収納庫291と、収納庫291を密封する扉292とが設けられている。収納庫291には、複数段の棚が設けられており、段毎に空き状況が管理される。例えば、各段に重量センサ等の各種センサを配置することで、空き状況を更新することができる。移動ロボット20は、収納庫291に収納された搬送物を上位管理装置10から指示された目的地まで自律移動により搬送する。本体部290は図示しない制御ボックスなどを筐体内に搭載していても良い。また、扉292は電子キーなどで施錠可能となっていても良い。搬送先に到着するとユーザU2が電子キーで扉292を開錠する。あるいは、搬送先に到着した場合、自動で扉292が開錠してもよい。
【0098】
図3に示すように、移動ロボット20の外装には、距離センサ群24として前後距離センサ241及び左右距離センサ242が設けられる。移動ロボット20は、前後距離センサ241により移動ロボット20の前後方向の周辺物体の距離を計測する。また、移動ロボット20は、左右距離センサ242により移動ロボット20の左右方向の周辺物体の距離を計測する。
【0099】
例えば、前後距離センサ241は、本体部290の筐体の前面及び後面にそれぞれ配置される。左右距離センサ242は、本体部290の筐体の左側面及び右側面にそれぞれ配置される。前後距離センサ241及び左右距離センサ242は例えば、超音波距離センサやレーザレンジファインダである。周辺物体までの距離を検出する。前後距離センサ241又は左右距離センサ242で検出された周辺物体までの距離が、距離閾値以下となった場合、移動ロボット20が減速または停止する。
【0100】
駆動部26には、駆動輪261及びキャスタ262が設けられる。駆動輪261は移動ロボット20を前後左右に移動させるための車輪である。キャスタ262は、駆動力は与えられず、駆動輪261に追従して転がる従動輪である。駆動部26は、図示しない駆動モータを有しており、駆動輪261を駆動する。
【0101】
例えば、駆動部26は、筐体内に、それぞれが走行面に接地する2つの駆動輪261と2つのキャスタ262を支持している。2つの駆動輪261は、互いに回転軸芯が一致するように配設されている。それぞれの駆動輪261は、不図示のモータによって独立して回転駆動される。駆動輪261は、
図2の駆動制御部212からの制御指令値に応じて回転する。キャスタ262は、従動輪であり、駆動部26から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、駆動部26の移動方向に倣うように追従する。
【0102】
移動ロボット20は、例えば、2つの駆動輪261が同じ方向に同じ回転速度で回転されれば直進し、逆方向に同じ回転速度で回転されれば2つの駆動輪261のほぼ中央を通る鉛直軸周りに旋回する。また、2つの駆動輪261を同じ方向と異なる回転速度で回転させることで、左右に曲がりながら進むことができる。例えば、左の駆動輪261の回転速度を右の駆動輪261の回転速度より高くすることで、右折することができる。反対に、右の駆動輪261の回転速度を左の駆動輪261の回転速度より高くすることで、左折することができる。すなわち、移動ロボット20は、2つの駆動輪261の回転方向、回転速度がそれぞれ制御されることにより、任意の方向へ並進、旋回、右左折等することができる。
【0103】
また、移動ロボット20では、本体部290の上面に表示部27、操作インタフェース281が設けられる。表示部27には、操作インタフェース281が表示される。ユーザが表示部27に表示された操作インタフェース281をタッチ操作することで、操作受付部28がユーザからの指示入力を受け付けることができる。また、非常停止ボタン282が表示部27の上面に設けられる。非常停止ボタン282及び操作インタフェース281が操作受付部28として機能する。
【0104】
表示部27は、例えば液晶パネルであり、キャラクターの顔をイラストで表示したり、移動ロボット20に関する情報をテキストやアイコンで呈示したりする。表示部27にキャラクターの顔を表示すれば、表示部27が擬似的な顔部であるかの印象を周囲の観察者に与えることができる。移動ロボット20に搭載されている表示部27等をユーザ端末400として用いることも可能である。
【0105】
本体部290の前面には、カメラ25が設置されている。ここでは、2つのカメラ25がステレオカメラとして機能する。つまり、同じ画角を有する2つのカメラ25が互いに水平方向に離間して配置されている。それぞれのカメラ25で撮像された画像を画像データとして出力する。2つのカメラ25の画像データに基づいて、被写体までの距離や被写体の大きさを算出することが可能である。演算処理部21は、カメラ25の画像を解析することで、移動方向前方に人や障害物などを検知することができる。進行方向前方に人や障害物などがいる場合、移動ロボット20は、それらを回避しながら、経路に沿って移動する。また、カメラ25の画像データは、上位管理装置10に送信される。
【0106】
移動ロボット20は、カメラ25が出力する画像データや、前後距離センサ241及び左右距離センサ242が出力する検出信号を解析することにより、周辺物体を認識したり、自機の位置を同定したりする。カメラ25は、移動ロボット20の進行方向前方を撮像する。移動ロボット20は、図示するように、カメラ25が設置されている側を自機の前方とする。すなわち、通常の移動時においては矢印で示すように、自機の前方が進行方向となる。
【0107】
次に、
図4を用いて、モード制御処理について説明する。ここでは、モード制御のための処理を上位管理装置10が行うものとして説明する。したがって、
図4は、主として、モード制御部117の制御系を示すブロック図となっている。もちろん、移動ロボット20のモード制御部217がモード制御部117の処理の少なくとも一部を行ってもよい。つまり、モード制御部217とモード制御部117が協働して、モード制御処理を行ってもよい。あるいは、モード制御部217がモード制御処理を行ってもよい。あるいは、環境カメラ300がモード制御のための処理の少なくとも一部を実行してもよい。
【0108】
モード制御部117は、画像データ取得部1170と、特徴抽出部1171と、切替部1174、第1判定部1176と、第2判定部1177等を備えている。環境カメラ300は、撮像素子301と演算処理部311を有している。撮像素子301は施設内をモニタするために画像を撮像する。演算処理部311は、撮像素子301の撮像画像に対して画像処理などを行うGPU318を有している。補助器具700は、上記のように、車椅子、松葉杖、杖、点滴台、歩行器等である。
【0109】
画像データ取得部1170は、環境カメラ300で撮像された画像の画像データを取得する。ここで、画像データは、環境カメラ300で撮像された撮像された撮像データ自体であってもよく、撮像データに処理が施されたデータであってもよい。例えば、画像データは、撮像データから抽出された特徴量のデータであってもよい。また、画像データには撮像時間や撮像場所などの情報が付加されていてもよい。また、画像データ取得部1170は、環境カメラ300からの画像データに限らず、移動ロボット20のカメラ25からの画像データを取得しても良い。つまり、画像データ取得部1170は、移動ロボット20に設けられたカメラ25が撮像した画像に基づく画像データを取得してもよい。画像データ取得部1170は、複数の環境カメラ300から画像データを取得しても良い。
【0110】
特徴抽出部1171は、撮像画像内の人の特徴を抽出する。より具体的には、特徴抽出部1171は、画像データに対して画像処理を行うことで、画像データに含まれる人を検出する。そして、画像データに含まれる人の特徴を抽出する。また、環境カメラ300に設けられた演算処理部311が特徴量抽出のための処理の少なくとも一部を行ってもよい。なお、画像データに人が含まれることを検出する手段は、例えばHOG(Histograms of Oriented Gradients)特徴量や畳み込み処理を含む機械学習など種々の技術が当業者に知られている。そのためここでは詳述を省略する。
【0111】
第1判定部1176は、特徴の抽出結果に基づいて、画像データに含まれている人が、補助器具700をしている器具使用者か否かを判定する。第1判定部1176による判定を第1判定とする。補助器具は、車椅子、松葉杖、杖、点滴台、歩行器などである。補助器具毎に形状が異なるため、各補助器具に特徴量ベクトルが異なる。よって、特徴量を比較することで補助器具の有無を判定することができる。画像処理により得られた特徴量を用いて、第1判定部1176は器具使用者か否かを判定することができる。
【0112】
また、第1判定部1176は機械学習モデルを用いて、第1判定を行ってもよい。例えば、教師有り学習により、第1判定のための機械学習モデルを予め構築することができる。つまり、撮像画像に補助器具の有無を正解ラベルとして付すことで、教師有り学習の学習用データとして用いることができる。補助器具の有無を正解レベルとして、ディープラーニングなどを行う。器具使用者を含む撮像画像を教師有り学習用の学習データとすることができる。同様に、補助器具を使用していない非器具使用者を含む撮像画像を教師有り学習用の学習データとすることができる。このようにすることで、画像データから第1判定を精度良く行うことができる機械学習モデルを生成することができる。
【0113】
第2判定部1177は、特徴の抽出結果に基づいて、画像データに含まれている人が、器具使用者を補助する補助者であるか否かを判定する。第2判定部1177による判定を第2判定とする。例えば、車椅子を使用する器具使用者の後ろに人がいる場合、第2判定部1177は、その人を補助者であると判定する。第2判定部1177が、車椅子の後ろの人が車椅子を押している補助者と判定する。また松葉杖、杖、又は点滴台などを使用する器具使用者の横に、人がいる場合、第2判定部1177は、その人を補助者と判定する。第2判定部1177は、器具使用者の横にいる人が、器具使用者の体重を支えている補助者と判定する。
【0114】
例えば、第2判定部1177は、器具使用者の近傍に人がいる場合、補助者有りと判定しても良い。第2判定部1177は、器具使用者の周辺にいる人を補助者と判定することができる。第2判定部1177は、器具使用者とその周辺にいる人の相対距離や相対位置に応じて第2判定を行うことができる。
【0115】
あるいは、第2判定部1177は機械学習モデルを用いて、第2判定を行ってもよい。例えば、教師有り学習により、第2判定のための機械学習モデルを予め構築することができる。撮像画像に補助者の有無を正解ラベルとして付すことで、教師有り学習の学習用データとして用いることができる。補助者の有無を正解レベルとして、ディープラーニングなどを行う。補助者と器具使用者を含む撮像画像を教師有り学習用の学習データとすることができる。同様に、器具使用者のみを含む撮像画像を教師有り学習用の学習データとすることができる。つまり、補助者を含まずに、かつ器具使用者を含む撮像画像を教師有り学習用の学習データとすることができる。このようにすることで、画像データから第2判定を精度良く行うことができる機械学習モデルを生成することができる。
【0116】
また、第1判定部1176と第2判定部1177は、共通の機械学習モデルを用いて判定を行ってもよい。つまり、1つの機械学習モデルが第1判定と第2判定を行ってもよい、このようにすることで、1つの機械学習モデルが、器具使用者の有無と、器具使用者に付き添う補助者の有無を判定することができる。さらに、機械学習モデルが特徴抽出を行ってよい。この場合、機械学習モデルは、撮像画像を入力として、判定結果を出力する。
【0117】
切替部1174は、第1判定及び第2判定の結果に基づいて、高負荷の処理を行う第1モード(高負荷モード)と、低負荷の処理を行う第2モード(低負荷モード)とを切替える。具体的には、切替部1174は、補助者がおらず、かつ、器具使用者が存在する領域を、第1モードにする。切替部1174は、補助者及び器具使用者が存在する領域では、第2モードにする。つまり、切替部1174は、全ての器具使用者に補助者の付き添いがある場合、第2モードにする。切替部1174は、器具使用者が全くいない領域では、第2モードにする。切替部1174はモードを切替えるための信号をエッジデバイスに出力する。エッジデバイスは、例えば、環境カメラ300,移動ロボット20、通信ユニット610、及び、ユーザ端末400の一つ以上を含む。
【0118】
さらに、補助器具700にはタグ701が設けられていてもよい。タグ701は、RFID(radio frequency identifier)などの無線タグであり、タグリーダ702との間で無線通信を行う。これにより、タグリーダ702がタグ701のID情報等を読み取ることができる。タグリーダ702の読取り結果に基づいて、第1判定部1176が第1判定を行ってもよい。
【0119】
例えば、通路や部屋に複数のタグリーダ702を配置しておく。また、各補助器具700には、固有の情報を格納したタグ701を取り付けておく。タグリーダ702がタグ701からの情報を読み出すことができた場合、タグリーダ702の周辺に補助器具700があることを検知することができる。例えば、タグリーダ702とタグ701との間には無線通信が可能な距離がある。よって、タグリーダ702がタグ701からの情報を読み取ることができた場合、補助器具700がタグリーダ702から通信可能距離内にあることを検知することができる。つまり、タグ701が取り付けられた補助器具700の位置を特定することができるため、器具使用者の有無を判定することができる。
【0120】
このようにすることで、第1判定部1176が器具使用者の有無を精度良く判定することができる。例えば、補助器具700が環境カメラ300の死角にある場合、撮像画像から補助器具の有無を判定することが困難になる。このような場合、第1判定部1176は、タグ701の近くにいる人を器具使用者として判定することができる。あるいは、タグリーダ702がタグ701の情報を読み出していない場合において、第1判定部1176が器具使用者有りと誤判定してしまうことがある。このような場合でも、タグ701に基づいて、第1判定部1176が第1判定を行う。このようにすることで、精度良く、器具使用者の有無を判定することができる。
【0121】
(モード情報)
図5は、モード情報129の例を示す表である。
図5では、第1モード(高負荷モード)と第2モード(低負荷モード)による処理の違いを示している。
図5では、モード制御の対象となる項目として、機械学習モデル、カメラピクセル、フレームレート、カメラスリープ、GPU(Graphics Processing Unit)使用コア数、GPU使用率上限の6項目が示されている。切替部1174は、モードに応じて、
図5に示す1つ以上の項目を切り替えることができる。
【0122】
機械学習モデルの項目の示されるように、切替部1174は、第1判定部1176、及び第2判定部1177の機械学習モデルを切り替えている。第1判定部1176、及び第2判定部1177はDNN(Deep Neural Network)のマルチレイヤを有する機械学習モデルであるとする。そして、低負荷モードでは、第1判定部1176、及び第2判定部1177が低レイヤ数の機械学習モデルを用いて、判定処理を行う。これにより、処理負荷を軽減することができる。
【0123】
高負荷モードでは、第1判定部1176、及び第2判定部1177が高レイヤ数の機械学習モデルを用いて、判定処理を行う。これにより、高負荷モードでは、判定精度を向上することができる。高レイヤ数の機械学習モデルでは、低レイヤ数の機械学習モデルよりも演算負荷が高くなる。よって、切替部1174が、第1判定部1176、及び第2判定部1177の機械学習モデルのネットワークレイヤをモードに応じて切替えることで、演算負荷を変えることができる。
【0124】
低レイヤ数の機械学習モデルは、高レイヤ数の機械学習モデルに比べて、補助者が存在する確率が低くなる機械学習モデルとしてもよい。よって、低レイヤ数の機械学習モデルの出力結果から補助者が存在しないと判定されると、切替部1174が、低負荷モードから高負荷モードへの切替を行う。切替部1174が低負荷モードから、高負荷モードへの切替を適切に行うことができる。環境カメラ300や移動ロボット20などのエッジデバイスが、ネットワークレイヤ数に低い機械学習モデルを実装していてもよい。この場合、エッジデバイス単独で判定、分類、又は切替等の処理を行うことができる。一方、上位管理装置10はネットワークレイヤ数が高い機械学習モデルを実装していてもよい。
【0125】
また、切替部1174は、第1判定部1176、及び第2判定部1177の一方のみ、機械学習モデルを切替えても良い。もちろん、第1判定部1176、及び第2判定部1177の一方のみが機械学習モデルを用いて判定を行っていてもよい。換言すると、第1判定部1176、及び第2判定部1177の他方は、機械学習モデルを用いていなくても良い。さらに、切替部1174は、変形例で示す分類器の機械学習モデルを切替えても良い。
【0126】
カメラピクセルの項目に示されるように、切替部1174が、環境カメラ300のピクセル数を切り替えている。低負荷モードでは、環境カメラ300が低ピクセル数の撮像画像を出力する。高負荷モードでは、環境カメラ300が高ピクセル数の撮像画像を出力する。つまり、モードに応じて、切替部1174が、環境カメラ300の撮像画像のピクセル数を切り替えるための制御信号を出力する。高ピクセル数の撮像画像を用いた場合、低ピクセルの撮像画像を用いた場合よりも、プロセッサなどの処理負荷が高くなる。環境カメラ300のピクセル数を切替えるために、環境カメラ300がピクセル数の異なる複数の撮像素子を備えていても良い。あるいは、環境カメラ300に実装されたプログラムなどによって、異なるピクセル数の撮像画像を出力するようにしてもよい。例えば、GPU318等が高ピクセル数の撮像画像の画像データを間引くことで、低ピクセル数の撮像画像を生成することができる。
【0127】
低負荷モードでは、低ピクセル数の撮像画像に基づいて、特徴抽出部1171が特徴を抽出する。また、低負荷モードでは、低ピクセル数の撮像画像に基づいて、第1判定部1176,第2判定部1177が判定を行う。これにより、処理負荷を軽減することができる。高負荷モードでは、高ピクセル数の撮像画像に基づいて、特徴抽出部1171が特徴を抽出する。高負荷モードでは、高ピクセル数の撮像画像に基づいて、第1判定部1176,第2判定部1177が判定を行う。これにより、高負荷モードでは、判定精度を向上することができる。よって、補助者無しで移動する器具使用者を効果的に監視することができるため、適切な制御を行うことができる。
【0128】
フレームレートの項目に示されるように、切替部1174が、環境カメラ300のフレームレートを切り替えている。低負荷モードでは、環境カメラ300が低フレームレートで撮像する。高負荷モードでは、環境カメラ300が高フレームレートで撮像する。つまり、モードに応じて、切替部1174が、環境カメラ300の撮像画像のフレームレートを切り替えるための制御信号を出力する。高いフレームレートで撮像画像を撮像されるため、フレームレートが低い場合よりも、プロセッサなどの処理負荷が高くなる。
【0129】
よって、高負荷モードでは、高フレームレートの撮像画像に基づいて、特徴抽出部1171が特徴を抽出する。また、低負荷モードでは、低フレームレートの撮像画像に基づいて、第1判定部1176,第2判定部1177が判定を行う。これにより、処理負荷を軽減することができる。高負荷モードでは、高フレームレートの撮像画像に基づいて、特徴抽出部1171が特徴を抽出する。高負荷モードでは、高フレームレートの撮像画像に基づいて、第1判定部1176,第2判定部1177が判定を行う。これにより、高負荷モードでは、判定精度を向上することができる。よって、補助者無しで移動する器具使用者を効果的に監視することができるため、適切な制御を行うことができる。
【0130】
カメラスリープの項目に示されるように、切替部1174が、環境カメラ300のスリープのオンオフを切り替えている。低負荷モードでは、環境カメラ300がスリープ状態となる。高負荷モードでは、環境カメラ300がスリープせずに動作する。つまり、モードに応じて、切替部1174が、環境カメラ300のスリープのオンオフを切り替えるための制御信号を出力する。低負荷モードでは、環境カメラ300がスリープするため、処理負荷を軽減することができる。
【0131】
GPU使用コア数の項目に示されるように、切替部1174が、GPU318の使用コア数を切り替えている。GPU318は、環境カメラの撮像画像に対して画像処理を行う。例えば、
図4に示されるように、環境カメラ300は演算処理部311を有するエッジデバイスとして機能する。そして、演算処理部311は、画像処理を行うためのGPU318を備えている。GPU318は、並列処理可能な複数のコアを有している。
【0132】
低負荷モードでは、環境カメラ300のGPU318が低コア数で動作する。これにより、演算処理の負荷を軽減することができる。高負荷モードでは、環境カメラ300のGPU318が高コア数で動作する。つまり、モードに応じて、切替部1174が、GPU318のコア数を切り替えるための制御信号を出力する。コア数が高い場合、エッジデバイスである環境カメラ300の処理負荷が高くなる。
【0133】
よって、低負荷モードでは、特徴抽出、及び判定処理等が低コア数のGPU318で行われる。高負荷モードでは、ユーザの特徴抽出、及び判定処理が高コア数のGPU318で行われる。これにより、高負荷モードでは、判定精度を向上することができる。よって、補助者無しで移動する器具使用者を効果的に監視することができるため、適切な制御を行うことができる。
【0134】
GPU使用率上限の項目に示されるように、切替部1174が、GPU使用率の上限を切り替えている。GPU317は、環境カメラの撮像画像に対して画像処理を行う。低負荷モードでは、環境カメラ300のGPU317が低い使用率上限値で動作する。これにより、演算処理の負荷を軽減することができる。高負荷モードでは、環境カメラ300のGPUが高い使用率上限値で動作する。つまり、モードに応じて、切替部1174が、GPU317の使用率の上限値を切り替えるための制御信号を出力する。使用率上限が高い場合、エッジデバイスである環境カメラ300の処理負荷が高くなる。
【0135】
よって、低負荷モードでは、GPU317が、低い使用率で、特徴抽出処理や判定処理を行う。高負荷モードでは、GPU317が、高い使用率で、特徴抽出処理や判定処理を行う。これにより、高負荷モードでは、判定精度を向上することができる。よって、単独で移動する器具使用者を効果的に監視することができるため、適切な制御を行うことができる。
【0136】
切替部1174は、上記の項目の少なくとも一つの項目を切り替える。これにより、環境に応じて適切な制御が可能となる。もちろん、切替部1174は、2つ以上の項目を切り替えてもよい。さらには、切替部1174が切り替える項目は、
図5に例示された項目に限られるものではなく、他の項目を切り替えてもよい。具体的には、高負荷モードでは、より多数の環境カメラ300を用いて監視を行ってもおい。つまり、低負荷モードでは一部の環境カメラ300などをスリープさせてもよい。切替部1174は種々の項目をモードに応じて切り替えることで、処理負荷を変化させることができる。上位管理装置10は、状況に応じて処理負荷を臨機応変に変えることができるため、消費電力を低減することができる。
【0137】
低負荷の処理で判定処理を行う場合、精度が低下してしまう。よって、より高負荷モードに切り替わりやすいように、処理を行うようにすればよい。例えば、低負荷モードでは、器具使用者と判定する確率、及び補助者がいないと判定する確率が高負荷モードよりも高くなるように設定すればよい。
【0138】
また、高負荷モードでは、サーバである上位管理装置10が複数の環境カメラ300から画像を収集してもよい。サーバである上位管理装置10は、1台以上の移動ロボット20に搭載されたカメラ25から画像を収集してもよい。そして、複数台のカメラから収集された画像に対して、処理を行えばよい。また、低負荷モードでは環境カメラ300等に設けられたエッジデバイス単独で処理を行ってもよい。これにより、より適切な処理負荷での制御が可能となる。
【0139】
図6を用いて、本実施の形態にかかる制御方法について説明する。
図6は、本実施の形態にかかる制御方法を示すフローチャートである。まず、画像データ取得部1170が環境カメラ300から画像データを取得する(S101)。つまり、環境カメラ300が監視領域を撮像すると、その撮像画像を上位管理装置10に送信する。画像データは動画でもよく、静止画でもよい。さらに、画像データは撮像画像に各種処理を施したデータであってもよい。
【0140】
次に、特徴抽出部1171が撮像画像内の人の特徴を抽出する(S102)。ここでは、特徴抽出部1171が、撮像画像に含まれる人を検出して、人毎に特徴を抽出する。例えば、特徴抽出部1171は、エッジ検出や形状認識のための特徴を抽出する。
【0141】
第1判定部1176が、特徴の抽出結果に基づいて、器具使用者がいるか否かを判定する(S103)。器具使用者がいない場合(S103のNO)、切替部1174が第2モードを選択する(S105)。第1判定部1176は、画像データから抽出された特徴量ベクトルに基づいて、第1判定を行う。これにより、撮像画像に含まれる人が、器具使用者であるか否かが判定される。例えば、第1判定部1176は、人の近傍に補助器具が検出されない場合、第1判定部1176はその人を器具使用者でないと判定する。よって、第2モードでの低負荷処理の監視が行われる。なお、撮像画像に複数の人が含まれる場合、全ての人が器具使用者でないと判定されると、ステップS103がNOとなる。
【0142】
器具使用者がいる場合(S103のYES)、第2判定部1177は、器具使用者の移動を補助する補助者がいるか否かを判定する(S104)。第2判定部1177は、画像データから抽出された特徴量ベクトルに基づいて、第2判定を行う。これにより、撮像画像に含まれる人が、補助者であるか否かが判定される。撮像画像に複数の人が含まれる場合、1人でも器具使用者でいる場合、ステップS103がYESとなる。
【0143】
補助者がいる場合(S104のYES)、切替部1174が第2モードを選択する(S105)。例えば、器具使用者の近傍に人がいる場合、第2判定部1177はその人を補助者であると判定する。よって、第2モードでの低負荷処理の監視が行われる。第2モードとすることで、消費電力を低減することができる。なお、撮像画像に複数の器具使用者が含まれる場合、全ての器具使用者に補助者がいると、ステップS104がYESとなる。
【0144】
補助者がいない場合(S104のNO)、切替部1174が第1モードを選択する(S106)。例えば、器具使用者の近傍に人がいない場合、第2判定部1177は補助者がいないと判定する。よって、第1モードでの高負荷処理の監視が行われる。このように、器具使用者が単独でいる場合、監視負荷を増強する。これにより、施設を適切に監視することができる。さらに、移動ロボット20が、器具使用者を速やかに避けることができる。撮像画像に複数の器具使用者が含まれる場合、1人以上の器具使用者に補助者がいないと、ステップS104がNOとなる。
【0145】
なお、第1判定と第2判定で用いる特徴は、同じものでもよく、異なるものでもよい。例えば、第1判定と第2判定で用いる特徴の少なくとも一部は共通であってもよい。また、ステップS103において、器具使用者がいない場合(S103のNO)、切替部1174が第2モード(低負荷モード)を選択しているが、さらに他のモードを選択してもよい。つまり、器具使用者がいない場合、より監視負荷を軽減することができるため、切替部1174が第2モードよりもさらに低負荷のモードを選択してもよい。
【0146】
変形例
変形例について
図7を用いて説明する。変形例では、モード制御部117が分類器1172を備えている。分類器1172以外の構成は実施の形態1と同様であるため説明を省略する。上位管理装置10がカメラに写ったユーザが非スタッフであるか否かを判定している。より詳細には、分類器1172が、ユーザを予め設定されたスタッフが属する第1グループと、スタッフ以外の第2グループに分類している。上位管理装置10は、カメラに写ったユーザが第1グループに属するか否かを判定している。
【0147】
分類器1172は、特徴の抽出結果に基づいて、人を予め設定された第1グループ又は第2グループに分類する。例えば、分類器1172は、特徴抽出部1171から受け取った特徴量ベクトルと、記憶部12が記憶するスタッフ情報128とから、人を分類する。分類器1172は、スタッフを第1グループに分類し、スタッフ以外の人を第2グループに分類する。分類器1172は、分類結果を切替部1174に供給する。
【0148】
分類器1172での分類のため、特徴抽出部1171は、検出した人の着衣の色を検出する。さらに詳細には、例えば特徴抽出部1171は、検出した人における着衣から、特定の色の面積が占める割合を算出する。あるいは、特徴抽出部1171は、検出した人物における着衣から、特定の部分における着衣の色を検出する。このようにして、特徴抽出部1171は、スタッフの着衣に特徴的な部分を抽出する。
【0149】
また、スタッフの着衣の特徴的な形状や特徴的な装着品を特徴として抽出してもよい。さらに特徴抽出部1171の顔画像の特徴などを抽出しても良い。つまり、特徴抽出部1171は、顔認識用の特徴を抽出しても良い。特徴抽出部1171は、抽出した特徴情報を分類器1172に供給する。
【0150】
切替部1174は、第1グループに属するか否かの判定結果に応じて、モードを切替える。監視対象領域に第1グループに属する人、つまり施設のスタッフしかいない場合、切替部1174が第3モードとする。第3モードは第1モード及び第2モードよりも負荷の低い処理を行っている。換言すると、第1モードが高負荷モード、第2モードが中負荷モード、第3モードが低負荷モードであると定義することもできる。
【0151】
スタッフ情報128の一例を
図8に示す。
図8は、スタッフ情報128の一例を示す表である。スタッフ情報128は、スタッフおよび非スタッフをその種別ごとに対応するグループに分類するための情報である。左の列は、スタッフの「カテゴリ」が示されている。スタッフのカテゴリの項目は上から「非スタッフ」、「薬剤師」および「看護師」が示されている。もちろん、例示された項目以外の項目が含まれていてもよい。スタッフのカテゴリの右側には、順に「着衣の色」、「グループ分類」、「速度」、「モード」の列が示されている。
【0152】
以下にスタッフカテゴリの項目ごとに対応する着衣の色(色調)について説明する。「非スタッフ」に対応する着衣の色は「特定できず」である。すなわち、特徴抽出部1171が画像データから人物を検出した場合に、検出した人物の着衣の色が予め設定されたものに含まれない場合には、特徴抽出部1171は検出した人物を「非スタッフ」と判定する。また、スタッフ情報128によれば、「非スタッフ」に対応するグループ分類は第2グループである。
【0153】
カテゴリには、着衣の色が対応付けられている。例えば、カテゴリ毎にスタッフの制服の色が決められているとする。この場合、制服の色がカテゴリ毎に異なる。よって、分類器1172は、着衣の色からカテゴリを特定することができる。もちろん、1つのカテゴリのスタッフが異なる色の制服を着用としていてもよい。例えば、看護師が白色(白衣)又はピンク色の制服が着用していてもよい。あるいは、複数のカテゴリのスタッフが共通の色の制服を着用していてもよい。例えば、看護師及び薬剤師が白色の制服を着用していてもよい。さらには、着衣の色に限らず、着衣の形状や帽子などを特徴としてもよい。そして、分類器1172は、画像中の人の特徴と一致するカテゴリを特定する。もちろん、画像中に二人以上の人が含まれている場合、分類器1172はそれぞれの人のカテゴリを特定する。
【0154】
分類器1172が着衣の色でスタッフか否かを判別することで、簡便かつ適切にスタッフか否かを判別することができる。例えば、新たなスタッフが追加された場合でも、そのスタッフの情報を用いずにスタッフか否かを判別することができる。あるいは、分類器1172は名札、IDカード、入室カード等の有無に応じて、非スタッフかスタッフかを分類してもよい。例えば、分類器1172は、着衣の所定箇所に名札が取り付けられている人をスタッフと分類する。あるいは、分類器1172は、カードホルダなどによってIDカードや入室カードが首からぶら下げられている人をスタッフと分類する。
【0155】
さらに、分類器1172は、顔画像の特徴に基づいて、分類を行ってもよい。例えば、スタッフ情報128には、予めスタッフの顔画像またはその特徴量が格納されていてもよい。そして、環境カメラ300が撮像した画像に含まれる人の顔の特徴が抽出できる場合、顔画像の特徴量を比較することで、スタッフか否かを判別することができる。また、スタッフのカテゴリを予め登録されていれば、顔画像の特徴量から、スタッフを特定することができる。もちろん、分類器1172は複数の特徴を組み合わせて分類を行うことができる。
【0156】
このように分類器1172は、画像中の人がスタッフであるか否かを判定する。分類器1172は、スタッフである人を第1グループに分類する。分類器1172は、非スタッフである人を第2グループに分類する。つまり、分類器1172は、スタッフ以外の人を第2グループに分類する。換言すると、分類器1172は、スタッフとして特定できない人を第1グループに分類する。なお、スタッフは予め登録されていることが好ましいが、新たなスタッフを着衣の色で分類してもよい。
【0157】
分類器1172は機械学習で生成された機械学習モデルとしてもよい。この場合、スタッフのカテゴリ毎に撮像された画像を教師データとして機械学習できる。つまり、スタッフのカテゴリが正解ラベルとして付されている画像データを教師データとして教師あり学習を行うことで、分類精度の高い機械学習モデルを構築することができる。つまり、スタッフが所定の制服を着用した状態の撮像画像を学習用データとしても用いることができる。
【0158】
機械学習モデルは特徴抽出及び分類処理を行うものであってもよい。この場合、人を含む画像を機械学習モデルに入力することで、機械学習モデルが分類結果を出力する。また、分類する特徴に応じた機械学習モデルを用いてもよい。例えば、着衣の色から分類する機械学習モデルと、顔画像の特徴量から分類する機械学習モデルをそれぞれ独立して用いてもよい。そして、いずれか1つの機械学習モデルでスタッフと認識された場合、分類器1172は、その人が第1グループに属すると判定する。スタッフとして特定できない場合、分類器1172は、その人が第2グループに属すると判定する。
【0159】
切替部1174は、分類結果、第1判定結果、第2判定結果に基づいて、モードを切り替える。具体的には、スタッフしかいない領域では、切替部1174は、第3モードとする。つまり、スタッフのみがいる領域では、切替部1174は、第3モードとする。あるいは、人がいない領域では、切替部1174は、第3モードとする。単独で移動している器具使用者がいる領域では、切替部1174は、第1モードとする。器具使用者がおり、かつ、単独で移動している器具使用者がいない領域では、切替部1174は、第2モードとする。なお、スタッフ以外の人がおり、かつ、器具使用者がいない領域では、切替部1174は、第2モードとするが、第3モードとしてもよい。
【0160】
切替部1174が切替のための制御信号を出力することで、
図5に示す制御項目が段階的に切り替えられる。例えば、第1モードを高負荷、第2モードを中負荷、第3モードを低負荷とするように、切替部1174が制御を切り替える。例えば、フレームレートを、高フレームレート、中フレームレート、低フレームレーとしてもよい。この場合、中フレームレートは、高フレームレートと低フレームレートの間のフレームレートとなる。
【0161】
あるいは、各モードで低負荷の制御に切り替える項目を変えてもよい。具体的には、第2モードでは、機械学習モデルのみを低レイヤとし、第3モードでは、さらにカメラピクセルを低ピクルス、フレームレートを低フレームレート、GPU使用コア数を低コア数としてもよい。つまり、第3モードでは、低負荷にする制御項目を増やすようにしてもよい。
【0162】
図9は、本実施の形態にかかる制御方法を示すフローチャートである。まず、画像データ取得部1170が環境カメラ300から画像データを取得する(S201)。つまり、環境カメラ300が監視領域を撮像すると、その撮像画像を上位管理装置10に送信する。画像データは動画でもよく、静止画でもよい。さらに、画像データは撮像画像に各種処理を施したデータであってもよい。
【0163】
次に、特徴抽出部1171が撮像画像内の人の特徴を抽出する(S202)。ここでは、特徴抽出部1171が、撮像画像に含まれる人を検出して、人毎に特徴を抽出する。例えば、特徴抽出部1171は、人の着衣の色を特徴として抽出する。もちろん、特徴抽出部1171は、着衣の色に限らず、顔認識ための特徴量や着衣の形状を抽出してもよい。特徴抽出部1171は、ナース帽の有無、名札の有無、IDカードの有無等を特徴として抽出してもよい。特徴抽出部1171は、分類、第1判定、第2判定に用いる特徴を全て抽出してもよい。
【0164】
分類器1172が、人の特徴に基づいて、撮像画像に含まれる人を第1グループ又は第2グループに分類する(S203)。分類器1172は、スタッフ情報を参照して、それぞれの人の特徴から、その人が第1グループに属するか否かを判定する。具体的には、分類器1172は、着衣の色が予め設定された制服の色と一致する場合、人が第1グループに属すると判定する。これにより、撮像画像に含まれる全ての人が、第1グループ又は第2グループに分類される。もちろん、分類器1172は着衣の色の特徴に限らず、他の特徴を用いて分類を行うことができる。
【0165】
そして、分類器1172は、監視領域内に第2グループの人がいるか否かを判定する(S204)。第2グループの人がいない場合(S204のNO)、切替部1174は第3モードを選択する(S205)。切替部1174は、環境カメラ300や移動ロボット20などのエッジデバイスに第3モードとするための制御信号を送信する。これにより、上位管理装置10が低負荷での監視を行う。つまり、予測できない行動を行う非スタッフがいないため、人が移動ロボット20に接触する可能性が低い。よって、低い処理負荷で監視を行った場合でも、移動ロボット20が適切に移動することができる。処理負荷を軽減することで、消費電力を抑制することができる。また、監視対象領域に人が全くない場合も、切替部1174は、監視対象領域を第3モードとする。さらに、監視対象領域に複数の人がいる場合、第2グループの人が全くいない場合、切替部1174は、監視対象領域を第3モードとする。
【0166】
第2グループの人がいる場合(S204のYES)、第1判定部1176は器具使用者がいるか否かを判定する(S206)。器具使用者がいない場合(S206のNO)、切替部1174が第2モードを選択する(S209)。例えば、第1判定部1176は、人の近傍に補助器具が検出されない場合、第1判定部1176はその人を器具使用者でないと判定する。よって、第2モードでの監視が行われる。
【0167】
器具使用者がいる場合(S206のYES)、第2判定部1177は、器具使用者の移動を補助する補助者がいるか否かを判定する(S207)。補助者がいない場合(S207のNO)、切替部1174が第1モードを選択する(S208)。例えば、器具使用者の近傍に人がいない場合、第2判定部1177は補助者がいないと判定する。よって、第1モードでの監視が行われる。このように、器具使用者が単独でいる場合、監視負荷を増強する。これにより、施設を適切に監視することができる。さらに、移動ロボット20が、器具使用者を速やかに避けることができる。
【0168】
補助者がいる場合(S207のYES)、切替部1174が第2モードを選択する(S209)。例えば、器具使用者の近傍に人がいる場合、第2判定部1177はその人を補助者であると判定する。よって、第2モードでの監視が行われる。第2モードとすることで、第1モードよりも消費電力を低減することができる。さらに、第3モードよりも監視を強化することができる。
【0169】
図10は、モード切替の具体例を説明するための図である。
図10は、移動ロボット20が移動するフロアを上から見た模式図である。施設には、部屋901と部屋903と通路902とが設けられている。通路902は部屋901と部屋903とを繋いでいる。
図10では、6台の環境カメラ300を環境カメラ300A~300Fとして識別する。環境カメラ300A~300Fはそれぞれ異なる位置及び異なる方向に設置されている。環境カメラ300A~300Fが異なる領域を撮像している。環境カメラ300A~300Fの位置、撮像方向、及び撮像範囲等は、フロアマップ121に予め登録されていてもよい。
【0170】
環境カメラ300A~300Fに割り当てられた領域をそれぞれ監視領域900A~900Fとする。例えば、環境カメラ300Aは、監視領域900Aを撮像し、環境カメラ300Bは監視領域900Bを撮像する。同様に、環境カメラ300C、300D、300E、300Fは、監視領域900C、900D、900E、900Fをそれぞれ撮像する。このように対象となる施設に複数の環境カメラ300A~300Fが設置されている。そして、施設が複数の監視領域に分けられている。監視領域の情報はフロアマップ121に予め登録されていても良い。
【0171】
ここでは、説明の簡略化のため、それぞれの環境カメラ300A~300Fが1つの監視領域をモニタしているものとして説明するが、1つの環境カメラ300が複数の監視領域をモニタしても良い。あるいは、複数の環境カメラ300が1つの監視領域をモニタしても良い。つまり、2台以上の環境カメラの撮像範囲が重複していてもよい。
【0172】
(実施例1)
実施例1では、環境カメラ300Aがモニタする監視領域900Aについて説明する。監視領域900Aは施設内の部屋901に対応している。監視領域900Aには、ユーザがいないため、切替部1174が監視領域900Aを第3モードに切り替える。また、監視領域900Aには、補助器具700Aが存在しているが、人が乗っていないため、第1モードとはならない。
【0173】
上位管理装置10が、低負荷の処理で監視領域900Aを監視する。例えば、環境カメラ300Aが低ピクセル数の撮像画像を出力する。もちろん、切替部1174が他の項目を低負荷モードとするための制御信号を出力しても良い。また、切替部1174が移動ロボット20Aを低負荷モードとするための制御信号を出力してもよい。監視領域900Aでは、人がいない。このため、第3モードとして、低負荷で監視した場合でも、移動ロボット20Aが高速に移動することができる。効率的に搬送タスクを実行することができる。
【0174】
(実施例2)
実施例2では、環境カメラ300Eがモニタする監視領域900Eについて説明する。監視領域900Eは施設内の通路902に対応している。具体的には、監視領域900Eは、監視領域900Fに繋がる通路902となる。監視領域900Eには、ユーザU2E、ユーザU3E、及び、移動ロボット20Eが存在している。
【0175】
ユーザU2Eは、補助器具700Eを使用する器具使用者である。補助器具700Eは、車椅子などである。ユーザU3Eは、器具使用者の移動を補助する補助者である。分類器1172が、ユーザU2E、U3Eを第2グループに属すると分類する。第1判定部1176がユーザU2Eを器具使用者であると判定する。第2判定部1177がユーザU3Eを補助者であると判定する。切替部1174が監視領域900Eを第2モードに切り替える。
【0176】
上位管理装置10が、中負荷の処理で監視領域900Eを監視する。例えば、環境カメラ300Eが中フレームレートの撮像画像を出力する。もちろん、切替部1174が他の項目を中負荷モードとするための制御信号を出力しても良い。また、切替部1174が移動ロボット20Eを中負荷モードとするための制御信号を出力してもよい。
【0177】
(実施例3)
実施例3では、環境カメラ300C,及び環境カメラ300Dがモニタする監視領域900C,及び監視領域900Dについて説明する。監視領域900C,及び監視領域900Dは施設内の通路902に対応している。監視領域900C,及び監視領域900Dには、ユーザU2Cがいる。ユーザU2Cは、単独で移動する器具使用者である。つまり、ユーザU2Cは、車椅子など補助器具700Cに乗って移動している。そして、ユーザU2Cの周りには、移動を補助する補助者が存在しない。
【0178】
分類器1172が、ユーザU2Cを第2グループに属すると分類する。第1判定部1176がユーザU2Cを器具使用者であると判定する。第2判定部1177は、補助者がいないと判定する。切替部1174が監視領域900C、及び監視領域900Dを第1モードに切り替える。
【0179】
上位管理装置10が、高負荷の処理で監視領域900C、及び監視領域900Dを監視する。例えば、環境カメラ300C、及び環境カメラ300Dが高フレームレートの撮像画像を出力する。もちろん、切替部1174が他の項目を高負荷モードとするための制御信号を出力しても良い。また、切替部1174が移動ロボット20Cを高負荷モードとするための制御信号を出力してもよい。
【0180】
(実施例4)
実施例4では、環境カメラ300Fがモニタする監視領域900Fについて説明する。監視領域900Fは施設内の部屋903に対応している。監視領域900Fには、ユーザU3Fが存在している。ユーザU3Fは補助器具を使用していない非スタッフである。
【0181】
分類器1172が、ユーザU3Fを第2グループに属すると分類する。第1判定部1176がユーザU3Fを器具使用者でないと判定する。切替部1174が監視領域900Fを第2モードに切り替える。
【0182】
切替部1174が監視領域900Fを第2モードに切替える。上位管理装置10が、中負荷の処理で監視領域900Fを監視する。例えば、環境カメラ300Fが中フレームレートの撮像画像を出力する。もちろん、切替部1174が他の項目を中負荷モードとするための制御信号を出力しても良い。
【0183】
(実施例5)
実施例5では、環境カメラ300Bがモニタする監視領域900Bについて説明する。監視領域900Bは施設内の通路902に対応している。監視領域900Bには、ユーザU1Bが存在している。ユーザU1Bはスタッフである。監視領域900Bには、非スタッフが存在していない。
【0184】
分類器1172が、ユーザU1Bを第1グループに属すると分類する。切替部1174が監視領域900Bを第3モードに切替える。上位管理装置10が、低負荷の処理で監視領域900Bを監視する。例えば、環境カメラ300Bが低フレームレートの撮像画像を出力する。もちろん、切替部1174が他の項目を低負荷モードとするための制御信号を出力しても良い。
【0185】
本実施の形態にかかる制御方法は、上位管理装置10で行われていてもよく、エッジデバイスで行われていてもよい。また、環境カメラ300,移動ロボット20及び上位管理装置10が協働して、制御方法を実行してもよい。つまり、本実施の形態にかかる制御システムは、環境カメラ300,移動ロボット20内に搭載されていてもよい。あるいは、制御システムの少なくとも一部又は全部は、移動ロボット20以外の装置、例えば、上位管理装置10に搭載されていてもよい。
【0186】
上位管理装置10は、物理的に単一な装置に限らず、複数の装置に分散して配置されていても良い。つまり、上位管理装置10は、複数のメモリや複数のプロセッサを備えていても良い。
【0187】
また、上述した上位管理装置10、環境カメラ300、又は移動ロボット20等における処理の一部又は全部は、コンピュータプログラムとして実現可能である。このようなプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0188】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態は病院内を搬送ロボットが自律移動するシステムについて説明したが、上述のシステムは、ホテル、レストラン、オフィスビル、イベント会場または複合施設において所定の物品を荷物として搬送できる。
【符号の説明】
【0189】
1 搬送システム
10 上位管理装置
11 演算処理部
12 記憶部
13 バッファメモリ
14 通信部
20 移動ロボット
21 演算処理部
22 記憶部
23 通信部
24 距離センサ群
25 カメラ
26 駆動部
27 表示部
28 操作受付部
111 ロボット制御部
115 ルート計画部
116 搬送物情報取得部
117 モード制御部
121 フロアマップ
122 ロボット制御パラメータ
123 ロボット情報
125 ルート計画情報
126 搬送物情報
128 スタッフ情報
129 モード情報
211 移動命令抽出部
212 駆動制御部
217 モード制御部
221 フロアマップ
222 ロボット制御パラメータ
226 搬送物情報
241 前後距離センサ
242 左右距離センサ
260 台車部
261 駆動輪
262 キャスタ
281 操作インタフェース
290 本体部
291 収納庫
292 扉
400 ユーザ端末
610 通信ユニット
1170 画像データ取得部
1171 特徴抽出部
1172 分類器
1174 切替部
1176 第1判定部
1177 第2判定部