(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-11
(45)【発行日】2024-06-19
(54)【発明の名称】ロボットサービスシステム
(51)【国際特許分類】
G05D 1/43 20240101AFI20240612BHJP
【FI】
G05D1/43
(21)【出願番号】P 2021133195
(22)【出願日】2021-08-18
【審査請求日】2023-06-16
(73)【特許権者】
【識別番号】000232955
【氏名又は名称】株式会社日立ビルシステム
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】藤田 悠
(72)【発明者】
【氏名】茎田 和哉
(72)【発明者】
【氏名】大原 辰徳
(72)【発明者】
【氏名】青木 英郎
【審査官】影山 直洋
(56)【参考文献】
【文献】特開2012-018645(JP,A)
【文献】特開2019-099371(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/43
(57)【特許請求の範囲】
【請求項1】
エレベーターを用いてロボットの移動を行うロボットサービスシステムであって、
移動可能なロボットと、
前記ロボットを無線通信により制御し、
前記ロボットが前記エレベーターに搭乗するまで、前記ロボットを制御するエレベーター連携部を備えるロボット制御サーバと、
前記ロボット制御サーバの要求に基づいて前記エレベーターの制御を行
い、前記ロボットが前記エレベーターに搭乗する時に、エレベーターを制御するロボット連携部を備える連携サーバ
と、を備え、
前記連携サーバは、前記ロボット制御サーバからかご内の前記ロボットとの通信が途絶えたことを示す情報を受け取ったとき、ロボット状態判断部がかご内の前記ロボットの画像に基づいて前記エレベーターを用いた前記ロボットの移動継続が可能かどうかを判定し、
前記ロボットの移動継続が可能と判定したとき、前記ロボット制御サーバへ前記ロボットの移動継続を示す情報を送付し、
前記ロボット連携部と前記エレベーター連携部とが協調動作することにより、前記ロボットと前記ロボット制御サーバとの通信が途絶えた場合にも、前記ロボット連携部により、前記ロボットの前記エレベーターによる移動を継続して行う
ロボットサービスシステム。
【請求項2】
前記ロボット状態判断部がかご内の前記ロボットの画像に基づいて前記エレベーターを用いた前記ロボットの移動継続が不可能と判定した場合には、前記連携サーバは前記ロボット制御サーバに対して前記ロボットの移動継続不可を示す情報を送付する
請求項1に記載のロボットサービスシステム。
【請求項3】
前記ロボット状態判断部は、エレベーター内カメラで得られた前記ロボットの画像から前記エレベーター内の前記ロボットの姿勢と位置情報を基に
、前記ロボッ
トの正常または異常を判断する
請求項1
または2に記載のロボットサービスシステム。
【請求項4】
さらに、前記ロボット状態判断部は、前記ロボットが、前記連携サーバの前記ロボット連携部からの情報受信が可能か否かを判断し、前記ロボットが前記ロボット連携部からの情報受信が可能と判断した場合に、前記ロボットの状態を前記ロボット制御サーバへ送信する
請求項
1に記載のロボットサービスシステム。
【請求項5】
前記ロボット状態判断部は、前記ロボットの状態が正常または異常となる前記ロボットの状態情報と、前記ロボットの姿勢、向き、及び前記ロボットのエレベーター内の位置を前記ロボット制御サーバに送信し、
前記ロボット制御サーバは、前記ロボット状態判断部から送信された情報を用いて、前記ロボットの前記エレベーターからの降機を制御する
請求項4に記載のロボットサービスシステム。
【請求項6】
さらに、前記連携サーバは、ロボット搭乗確認部を備え、
前記ロボット搭乗確認部は、前記ロボットの前記エレベーターへの搭乗要求があった場合に、前記ロボットの形状及び通信仕様を前記ロボットに問い合わせ、前記ロボットがエレベーターに搭乗可能かどうかを判断するとともに、前記ロボットの前記エレベーターへの搭乗に際して、前記ロボットが通信遮断した場合の移動継続通知および前記ロボットの状態通知が必要か否かを判断する
請求項5に記載のロボットサービスシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットサービスシステムに関する。
【背景技術】
【0002】
近年、あらゆる機器をインターネットに接続し、種々のサービスを提供するIoT(Internet of Things)技術が普及しつつある。インターネットに接続される機器の数が急速に増加する中、IoT技術により、コミュニケーションを用いて人間に種々のサービスを提供するロボットシステムの技術開発が行われている。
現在利用されているロボットの多くは階段を移動することが困難であるため、サービス提供エリア内で階床を移動する際にはエレベーターを使うことが現実的な手段となる。
【0003】
特許文献1には、エレベーター内に通信用の中継装置が配置され、エレベーターかごの外部または内部にいる自立走行体(ロボット)は、中継装置を介してとエレベーター制御装置と通信を行うことにより、エレベーターを制御可能とする自立走行体移動システムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された技術によれば、エレベーターを用いることにより、ロボットの階床移動が可能となる。しかし、特許文献1に記載の技術では、エレベーターに対して追加の機器となる中継装置を設置する必要がある。
したがって、特許文献1に記載されるような自立走行体移動システムは、既設のエレベーターすべてに対して適用できるわけではない。
【0006】
さらに、特許文献1に記載の技術では、通信が途絶した場合にどのようにして対応するかについては考慮されていない。このため、無線LANを利用しているロボットの場合、エレベーター材質が電波を遮断する金属であると、エレベーター搭乗後にロボットとロボットを管理するサーバとの通信が遮断される可能性が高くなる。このような場合には、エレベーター制御装置側からは、エレベーターかご内のロボットの状態がわからなくなってしまうため、エレベーター制御が正常に行われなくなるという問題が発生する。
【0007】
本発明の目的は、上記問題に鑑み、ロボットがかご内にいてロボット制御装置との通信が途絶えても、エレベーター制御装置との通信を行って、エレベーターによりロボットの階層移動を可能にしたロボットサービスシステムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本願は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、本発明は、エレベーターを用いてロボットの移動を行うロボットサービスシステムであって、 移動可能なロボットと、ロボットを無線通信により制御し、ロボットがエレベーターに搭乗するまで、ロボットを制御するエレベーター連携部を備えるロボット制御サーバと、ロボット制御サーバの要求に基づいてエレベーターの制御を行い、ロボットがエレベーターに搭乗する時に、エレベーターを制御するロボット連携部を備える連携サーバと、を備える。
そして、連携サーバは、ロボット制御サーバからかご内のロボットとの通信が途絶えたことを示す情報を受け取ったとき、ロボット状態判断部がかご内のロボットの画像に基づいてエレベーターを用いたロボットの移動継続が可能かどうかを判定し、ロボットの移動継続が可能と判定したとき、ロボット制御サーバへロボットの移動継続を示す情報を送付する。さらに、本発明のロボットサービスシステムは、ロボット連携部とエレベーター連携部とが協調動作することにより、ロボットとロボット制御サーバとの通信が途絶えた場合にも、ロボット連携部により、ロボットのエレベーターによる移動を継続して行うようにする。
【発明の効果】
【0009】
本発明によれば、ロボット制御サーバとロボットとの通信が途絶えた場合でも、エレベーター内部に追加の設備を設置しないで、ロボットのエレベーターへの搭乗とエレベーターを用いたロボットの階床移動が可能になる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施の形態例のロボットサービスシステムの全体構成の例を示す図である。
【
図2】エレベーターロボット連携サーバの構成例を示す図である。
【
図3】エレベーターロボット連携サーバ内で保持するデータベース(DB)のデータ構造の例を示す図である。
【
図4】ロボット制御サーバの構成例を示す図である。
【
図6】ロボットがエレベーターを用いて階を移動する手順の例を示すフローチャートである。
【
図7】ロボット搭乗確認処理の手順の例を示すフローチャートである。
【
図8】エレベーターとロボットの連携処理の手順の例を示すフローチャートである。
【
図9】ロボット状態確認処理の手順の例を示すフローチャートである。
【発明を実施するための形態】
【0011】
<ロボットサービスシステムの全体構成>
以下、本発明の実施の形態例を
図1~
図9を参照して詳細に説明する。
図1は、本発明の実施の形態例(以下、「本例」と略記)であるロボットサービスシステムの全体構成を示すブロック図である。
【0012】
図1に示すように、本例のロボットサービスシステムでは、サービスエリア10において、エレベーターとロボットの連携制御を行うエレベーターロボット連携サーバ100(以下、単に「連携サーバ100」と略記)と、ロボット300を制御するロボット制御サーバ200を構内LAN(Local Area Network)のようなネットワーク60を介して接続されている。
【0013】
すなわち、本例のロボットサービスシステムは、エレベーター20とロボット300の連携を管理する連携サーバ100と、連携サーバ100と構内LAN等のネットワーク60で接続され、ロボット300を制御するロボット制御サーバ200を備える。詳細は後述するが、ロボット制御サーバ200は、ロボット300がユーザに対して行う種々のサービスを制御するサーバである。ここで、ロボット300は、いわゆる人型ロボットに限らず、自律移動可能な情報処理措置全般を含むものとする。
【0014】
ロボット300によるサービスには、例えば、ロボット300が人であるユーザと対話するサービスや、人と対話をしながら目的の場所まで移動してユーザを案内するサービスなどが含まれる。
さらに、ロボット300によるサービスには、サイネージ等と連動し、ロボット300のモーションを交えながら不特定多数の聴衆に向けて一方的に情報を発信する演説サービス、荷物を特定場所に届けるサービス、及び清掃サービスなども考えられる。
【0015】
また、本例のロボットサービスシステムは、サービスエリア10に設定されているエレベーター20と、エレベーター管理装置30と、エレベーター制御装置40と、エレベーター内カメラ50を備える。エレベーター管理装置30は、連携サーバ100とエレベーター20とのデータのやり取りを仲介する装置であり、エレベーター制御装置40は、エレベーター20の運行等の制御を行う装置である。
【0016】
上述したように、ここでは、ユーザに対してサービスを提供するための機器である自律移動可能な情報処理装置をロボット300として説明するが、この機器は人型のロボットに限定されるものではなく、同様のサービスを提供できる機器であれば、その形状及び移動手段は問わない。
また、
図1では、サービスエリア10に設置されているエレベーター20は一台になっているが、複数台のエレベーターでもよいことは言うまでもない。
【0017】
図1では、連携サーバ100とロボット制御サーバ200は、ともにサービスエリア10内に配置されているが、連携サーバ100及びロボット制御サーバ200の一方あるいは双方ともサービスエリア10の外に配置してもよい。例えば、連携サーバ100及び/またはロボット制御サーバ200を、インターネットを介したクラウド上や、特定の場所に設置した不図示のサーバやデータセンタに配置するようにしてもよい。
【0018】
図1に示されるように、通常は、サービスエリア10内のそれぞれの機器は、構内LANなどのネットワーク60で接続される。構内LANの接続方式には、例えば有線LAN、無線LAN、短距離無線などがあるが、これらの複数の接続方式を併用してもよい。
【0019】
<連携サーバ100の構成と機能>
図2は、連携サーバ100のハードウェアの構成とソフトウェアの機能を示すブロック図である。
連携サーバ100は、物理的に一つの計算機上で、あるいは、論理的または物理的な複数の計算機上で構成される計算機システムである。したがって、連携サーバ100のメモリ101に格納されたプログラムは、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的な計算機資源により構築される仮想計算機上で動作するようにしてもよい。
【0020】
連携サーバ100は、ハードウェア構成として、メモリ101、CPU(Central Processing Unit)102、入出力インタフェース(I/O)103、補助記憶装置104及びネットワークインタフェース(I/F)105を備える。
【0021】
また、連携サーバ100は、そのソフトウェア機能として、エレベーター制御部111、ロボット制御サーバ通信部112、ロボット搭乗確認部113、画像解析部114、ロボット状態判断部115及びロボット連携部116を有する。
【0022】
また、連携サーバ100は、ロボット状態判断情報データベース(以下、「DB」と略記)121、ロボット仕様情報DB122、エレベーター仕様情報DB123、エレベーター運用情報DB124を有する。
【0023】
連携サーバ100を構成する各部の機能は、一般的なコンピュータの補助記憶装置104にプログラム(ソフトウェア)の形で格納され、CPU102が、補助記憶装置104から読み出したプログラムをメモリ101上に展開して実行される。連携サーバ100は、ネットワークI/F105を介して、ロボット300以外にも、他のサーバやサービス機器と通信することが可能である。
【0024】
I/O103は、連携サーバ100にユーザが指示を入力したり、プログラムの実行結果などをユーザに提示したりするためのユーザインタフェースである。I/O103には、例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなどの入出力デバイスが接続される。なお、I/O103は、ネットワーク60を経由して接続される不図示の管理端末によって提供されるユーザインタフェースであってもよい。
【0025】
CPU102は、メモリ101に格納されたプログラムを実行するプロセッサである。メモリ101には、図示されていないが、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)が含まれる。ROMには、例えば、BIOS(Basic Input Output System)などの不変のプログラムが格納される。
RAMは、DRAM(Dynamic Random Access Memory)のような揮発性で高速な記憶素子であり、RAMには、補助記憶装置104に格納されたプログラムや、プログラムの実行時に使用されるデータが一時的に格納される。
【0026】
エレベーター制御部111は、エレベーター20に対して階の移動指示や扉の開閉指示を行う。ロボット制御サーバ通信部112は、ロボット制御サーバ200からの通信を受け、その内容を解釈してエレベーター制御部111に伝える。
【0027】
ロボット搭乗確認部113は、ロボット300から連携サーバ100に対してエレベーター20への搭乗依頼があった場合に、ロボット300に対してその形状や通信仕様を問い合わせる。そして、ロボット搭乗確認部113は、エレベーター内の現在の搭乗者等を含め、ロボット300が搭乗可能かどうかを確認する。また、ロボット搭乗確認部113は、ロボット300のエレベーター20への搭乗に際して、連携サーバ100のロボット連携部116によるロボット通信遮断対応が必要か否かを判断する。ここでは、ロボット通信遮断対応は後述するエレベーター連携処理(S800)に含まれるエレベーター搭乗中のロボットの状態判断、エレベーターへの連携継続通知、ロボット状態情報を用いた降機処理のことを指す。
【0028】
画像解析部114は、エレベーター内カメラ50からの映像情報を受け取り、ロボット300がエレベーター20に搭乗しているときのロボット300の姿勢や向き等の解析を行う。また、画像解析部114は、エレベーター内に存在している人の人数カウントも行う。
ロボット状態判断部115は、画像解析部114で得られた情報からエレベーター20に搭乗中のロボット300が正常に搭乗しているかどうかを判断する。
【0029】
ロボット連携部116は、ロボット300がエレベーター20に搭乗中であるときに、エレベーター20及びロボット300との間で通信を行い、ロボット300のエレベーター20への搭乗をサポートする。
まず、ロボット連携部116は、エレベーター20に搭乗中のロボット300の状態を取得する。また、ロボット連携部116は、エレベーター20に搭乗中のロボット300がロボット制御サーバ200と通信できない状態になった場合には、エレベーター管理装置30に対してエレベーターの運行に関する指示を出すように依頼する。
【0030】
すなわち、ロボット連携部116は、エレベーター20を使ってロボット300を目的階に移動させて降機させる際に、後述するロボット制御サーバ200のエレベーター連携部216と協調動作を行う。
つまり、本例のロボットサービスシステムでは、連携サーバ100のロボット連携部116とロボット制御サーバ200のエレベーター連携部216が協調動作を行って、ロボット300とロボット制御サーバ200との通信が途絶えても、無事にロボット300を目的階に降機させるようにしている。
【0031】
また、連携サーバ100のメモリ101には、ロボット状態判断情報DB121、ロボット仕様情報DB122、エレベーター仕様情報DB123、エレベーター運用情報DB124が格納されている。これらのデータベースのデータ構造については、
図3で後述する。
【0032】
補助記憶装置104は、例えば、磁気記憶装置(HDD:Hard Disk Drive)、フラッシュメモリ(SSD:Solid State Drive)などの大容量で不揮発性の記憶装置である。この補助記憶装置104には、CPU102により実行されるプログラムや、プログラムの実行時に使用されるデータが格納される。
すなわち、補助記憶装置104に格納されたプログラムは、読み出されてメモリ101にロードされ、CPU102によって実行される。
【0033】
なお、連携サーバ100は、サービスエリア10内にあるその他の装置と一つの物理的または論理的な計算機に収容されてもよい。また、プログラムの実行によって実現される処理の全部または一部をハードウェア(例えば、FPGA:Field-Programmable Gate Array)によって実現してもよい。
【0034】
<各種テーブルのデータ構造>
図3は連携サーバ100のメモリ101に存在するロボット状態判断情報DB121、ロボット仕様情報DB122、エレベーター仕様情報DB123、及びエレベーター運用情報DB124のデータ構造を示す。
ロボット状態判断情報DB121には、エレベーター20内に搭乗しているロボット300の姿勢を判断する情報が格納されている。
【0035】
すなわち、
図3に示すように、ロボット状態判断情報DB121には、ロボット300の状態に応じてユニークな値を持つ状態情報識別子、その状態情報がどんな種類のロボットのものかを示すロボット種別、状態情報がどの向きからの画像なのかを示す画像方向(例えば正面、横向き等)、画像方向に対応するロボット自身の画像データが格納される。
【0036】
ロボット仕様情報DB122には、各ロボット300がどのような仕様であるかを示す情報が格納される。
すなわち、ロボット仕様情報DB122には、ユニークな値をもつロボット仕様情報識別子、その仕様情報がどのロボット300のものかを示すロボット種別名、そのロボット300のサイズを示す寸法、そのロボット300の重量が格納される。
ここで、ロボット種別名には、具体的なロボットの名前、つまり個々のロボット300に付けられた固有名詞が格納される。
【0037】
さらに、ロボット仕様情報DB122には、そのロボット300がどのような通信手段でロボット制御サーバ200と通信するかを示す、例えば携帯電話回線、無線LAN等の通信方式名が格納される。また、ロボット仕様情報DB122には、ロボット300が連携サーバ100からの情報が受信可能か否かを示す情報受信可否が格納される。
【0038】
ここで、ロボット300における情報受信可否とは、ロボット300がロボット制御サーバ200からの制御を離れて、エレベーター20への搭乗中に連携サーバ100との通信が可能であるか否かを示す情報である。例えば、情報受信可否の欄が「否」である場合には、ロボット300側に外部からの通信を受けるインタフェースがない場合や、ロボット300が連携サーバ100からのロボット通信遮断対応を必要としない場合が考えられる。また、ロボット300がスタンドアローンで動作可能な状況になっていて、ロボット300に搭載されるセンサにより自身の状態が判断できる場合なども考えられる。
【0039】
一方、情報受信可否の欄が「可」である場合であれば、ロボット300は、連携サーバ100からの情報が受信できることになり、ロボット300とロボット制御サーバ200との通信が途絶えた場合であっても、ロボット300は連携サーバ100との通信を行ってエレベーター20との連携を実施することができる。
【0040】
ここで、ロボット仕様情報DB122に格納されるロボット仕様情報は、ロボット種別ごとに存在し、ロボット300の新しい種別が増えるとデータが追加される。なお、ロボット状態判断情報DB121及びロボット仕様情報DB122に登録される情報は、ロボット300がエレベーター20に搭乗する処理を行う前に格納されていなければならない。
【0041】
エレベーター仕様情報DB123には、エレベーター20がどのような形状であるかを示す情報が格納される。すなわち、エレベーター仕様情報DB123には、エレベーター20ごとにユニークな値を持つエレベーター仕様情報識別子、エレベーター20内部の寸法、エレベーター20の扉寸法、エレベーター20にロボット300を乗せたときの重さを示す耐荷重に関する情報が格納される。これらの情報は、サービスエリア10に設置されているエレベーター20の種別毎にエレベーター仕様情報DB123に格納される。
【0042】
エレベーター運用情報DB124には、サービスエリア10内で動作しているエレベーター20がそれぞれどのような状態かを示す情報が格納される。すなわち、エレベーター運用情報DB124には、エレベーター20ごとにユニークな値を持つエレベーター識別子、そのエレベーターがどのような仕様かを示すエレベーター仕様情報識別子が格納される。ここで、エレベーター識別子は、それぞれのエレベーターに付随して設けられる識別子であり、エレベーター仕様情報識別子は、エレベーター仕様情報DB123のエレベーター仕様情報識別子と同じものである。
【0043】
また、エレベーター運用情報DB124には、エレベーター20の位置、エレベーター20の状態、エレベーター20とロボット300の連携の有無を示すロボット連携が格納される。
エレベーター20の位置は現時点でエレベーター20がどの位置(階層)にいるかを示し、エレベーター20の状態は、エレベーター20が停止中、移動中、扉開閉中のいずれかであることを示す。また、ロボット連携は、エレベーター20が現在の時点で、ロボット300と連携して動作しているかどうかを示す。
【0044】
<ロボット制御サーバ200の構成と機能>
図4は、ロボット制御サーバ200のハードウェアの構成とソフトウェアの機能を示すブロック図である。
ロボット制御サーバ200の処理内容は、一般的なコンピュータの補助記憶装置204にプログラム(ソフトウェア)の形で格納されている。
CPU202は、ロボット制御サーバ200として機能させるプログラムを、補助記憶装置204から読み出し、メモリ201上に展開して実行する。ロボット制御サーバ200は、ネットワークI/F205を介して他のサーバやサービス機器、及びロボット300と通信する。
【0045】
入出力インタフェース(I/O)203は、ユーザがロボット制御サーバ200に指示を入力したり、プログラムの実行結果などをユーザに提示したりするためのユーザインタフェースである。I/O203には、例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなどの入出力デバイスが接続される。I/O203は、ネットワーク経由で不図示の管理端末のユーザインタフェースと接続されてもよい。
【0046】
CPU202は、メモリ201に格納されたプログラムを実行するプロセッサである。メモリ201は、連携サーバ100のメモリ101と同様に、不揮発性の記憶素子であるROM及び揮発性の記憶素子RAMを含む。ROMには、不変のプログラム(例えば、BIOS:Basic Input Output System)などが格納される。また、RAMは、DRAMのような揮発性で高速な記憶素子であり、RAMには、補助記憶装置204に格納されたプログラム及びプログラムの実行時に使用されるデータが一時的に格納される。
【0047】
メモリ201には、ロボット制御サーバ200の各種機能を実現するプログラムが格納されている。これらのプログラムは、
図4に示すように、サービス制御部211、シナリオ制御部212、音声処理部213、画像処理部214、対話処理部215、及びエレベーター連携部216として機能する。
【0048】
サービス制御部211は、ロボット300に対して、ロボット300が行う様々なサービスに関連する動作指示を行う。具体的には、ロボット300のスピーカ308(
図5参照)から音声を再生したり、ロボット300のモーションを実行したり、ロボット300を特定の場所へ移動させたりする指示を行う。
【0049】
シナリオ制御部212は、サービスを提供するためにロボット300が行動するシナリオを保持しており、例えば、音声入力や画像入力等の外部からのイベントを受けて、ロボットが次にどのような行動をとるかを判断する。
音声処理部213は、ロボット300のマイク309(
図5参照)に入力された音声データをロボット300から受信し、受信した音声データを分析してテキストデータに変換する。
【0050】
画像処理部214は、ロボット300のカメラ311(
図5参照)に入力された画像データをロボット300から受信して分析し、ロボット300の正面に人が存在するか否かの判断や、ロボット300が対面している人の年齢や性別、感情などを推定する。
【0051】
対話処理部215は、音声処理部213で変換されたテキストデータ、もしくは他のデバイスから入力されたテキストデータを受信し、予め学習した対話データに基づき、最も適切な回答を推測して、テキストデータとして出力する。ここで、テキストデータが入力可能な他のデバイスとしては、例えば、サイネージやタブレット、外部接続端末などが考えられる。
【0052】
エレベーター連携部216は、連携サーバ100との通信を行い、エレベーター20へのロボット搭乗依頼、エレベーター20の呼び出し、扉開閉、目的階設定といったエレベーター操作を行う。また、エレベーター連携部216は、ロボット連携部116と協調動作を行ってロボット300のエレベーター搭乗を制御する。
【0053】
すなわち、ロボット制御サーバ200のエレベーター連携部216と連携サーバ100のロボット連携部116が協調動作を行うことにより、ロボット制御サーバ200とロボット300の通信が途絶えた場合でも、連携サーバ100のロボット連携部116により、ロボット300をエレベーター20に搭乗させ、無事に目的階に降機させることが可能になる。
【0054】
また、メモリ201には、地図情報DB221が格納される。地図情報DB221には、ロボット300がサービス提供を行うエリアの地図データが格納されている。具体的には、サービスエリア10内の壁や通路、エレベーター20の位置などが格納されている。
補助記憶装置204は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)などの大容量かつ不揮発性の記憶装置である。補助記憶装置204には、CPU202により実行されるプログラム及びプログラムの実行時に使用されるデータが格納される。
【0055】
ロボット制御サーバ200も、連携サーバ100と同様に、物理的に一つの計算機上、あるいは、論理的または物理的な複数の計算機上で構成される計算機システムである。したがって、ロボット制御サーバ200のメモリ201に格納されたプログラムは、同一の計算機上で別個のスレッドで動作するようにしてもよく、複数の物理的な計算機資源により構築された仮想計算機上で動作するようにしてもよい。
【0056】
また、ロボット制御サーバ200とサービスエリア10内に配置される他の装置が一つの物理的または論理的な計算機に収容されてもよい。なお、プログラムの実行によって実現される処理の全部または一部をFPGAのようなハードウェアによって実現してもよい。
【0057】
<ロボット300の構成と機能>
図5は、ロボット300の構成例を示すハードウェアの構成とソフトウェアの機能を示すブロック図である。ロボット300のソフトウェア機能は、一般的なコンピュータの補助記憶装置304にプログラム(ソフトウェア)の形で格納され、CPU302が、補助記憶装置404から読み出したプログラムをメモリ301上に展開することで実行される。
【0058】
ロボット300は、CPU302、入出力インタフェース(I/O)303、補助記憶装置304、及び通信インタフェース(I/F)305を備える。そして、ロボット300は、通信I/F305を介して、ロボット制御サーバ200及び連携サーバ100を含む他の機器と通信する。さらに、ロボット300は、頭、腕、脚といったロボット300の機構部306、機構部306を制御する機構制御部307、音声を発するスピーカ308、音声を収集するマイク309、発光部310、及びカメラ311を備える。
【0059】
I/O303は、ユーザがロボット300に対する指示を入力したり、プログラムの実行結果などをユーザに提示したりするためのユーザインタフェースである。I/O303には、例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタなどの入出力デバイスが接続される。I/O303は、ネットワーク60を経由して不図示の管理端末のユーザインタフェースと接続されてもよい。
【0060】
CPU302は、メモリ301に格納されたプログラムを実行するプロセッサである。メモリ301は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMには、不変のプログラム(例えば、BIOS)などが格納されている。RAMは、DRAMのような揮発性で高速な記憶素子である。RAMには、補助記憶装置304に格納されたプログラムや、プログラムの実行時に使用されるデータが一時的に格納される。
【0061】
また、ロボット300は、その主たるソフトウェア機能として、位置管理部321とロボット行動制御部322を有する。これらの機能は、対応するプログラムをメモリ301に格納することによって実現される機能である。
位置管理部321は、カメラ311から取得する画像データを使ってロボット300の自己位置を推定する。
【0062】
ロボット行動制御部322は、ロボット300の行動制御を行う。例えば、ロボット行動制御部322は、ロボット制御サーバ200のサービス制御部211からの指示を受け、スピーカ308から音声を再生したり、機構部306を制御してモーションを実行したりする。
さらに、ロボット行動制御部322は、ロボット300を特定の場所へ移動させたり、ロボット制御サーバ200から指示された発光パタンで発光部310を発光させたりする。
【0063】
補助記憶装置304は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)などの大容量かつ不揮発性の記憶装置である。補助記憶装置304には、CPU302により実行されるプログラムや、そのプログラムの実行時に使用されるデータが格納される。すなわち、補助記憶装置304から読み出されるプログラムは、CPU302によってメモリ301に展開され実行される。
【0064】
ロボット300もまた、連携サーバ100やロボット制御サーバ200と同様に、物理的に一つの計算機上、あるいは論理的または物理的な複数の計算機上で構成される計算機システムである。
メモリ301に格納されたプログラムは、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的な計算機資源により構築される仮想計算機上で動作するようにしてもよい。なお、プログラムの実行によって実現される処理の全部または一部を、例えばFPGAのようなハードウェアによって実現してもよい。
【0065】
<ロボットサービスシステムの処理の流れ>
図6は、
図1に示すロボットサービスシステムにおいて、ロボット300がエレベーター20を使って別の階に移動する際の手順を示すフローチャートである。ここで、エレベーター20に搭乗させるロボット300は、事前に登録されており、ロボット300がエレベーター20に搭乗する際に必要な情報は、連携サーバ100のロボット状態判断情報DB121及びロボット仕様情報DB122に登録されているものとする。
【0066】
まず、ロボット300のロボット行動制御部322は、ロボット300をエレベーター20に搭乗させるために、ロボット300をエレベーターホールに移動させる(S601)。
【0067】
次に、ロボット制御サーバ200のエレベーター連携部216は、連携サーバ100に対してロボット300のエレベーター搭乗依頼を送信する(S602)。すると、連携サーバ100において、
図7で後述するロボット搭乗確認処理(S700)にてロボットの仕様と、搭乗可能なエレベーター20が存在するか否かの確認がなされる。なお、ステップS700の処理は、連携サーバ100のロボット搭乗確認部113によって行われる。
【0068】
次に、ロボット制御サーバ200のエレベーター連携部216は、ロボット搭乗確認処理(S700)の結果からロボット300がエレベーター20に搭乗可能か否かを判断する(S603)。ステップS603で、ロボット300から搭乗できない旨の応答があった場合(S603のNO)、エレベーター連携部216は、エレベーター20に搭乗できない理由が待機により解消する可能性があるか否かを判断する(S604)。
【0069】
そして、ステップS604で、待機が有効で、搭乗できない理由が解消する場合には(S604のYES)、ステップS700のロボット搭乗確認処理に戻る。例えば、ステップS604における搭乗できない理由が、すべてのエレベーターが稼働中である場合などが考えられるが、このような場合には、搭乗できない理由が待機により解消できると判断される。
【0070】
一方、ステップS604で、待機しても搭乗不可状態が解消できない場合(S604のNO)には、ロボット300のエレベーター20への搭乗不可としてロボット連携処理を終了する。この待機しても解消できない場合とは、ロボット300の形状や重量により、ロボット300がエレベーター20に搭乗できない場合などが考えられる。
【0071】
ステップS603で、ロボット300が搭乗可能であるとエレベーター連携部216が判断した場合(S603のYES)には、次に、エレベーター連携部216は、エレベーター20への搭乗にロボット通信遮断対応が必要か否かを確認する(S605)。なお、ステップS605でロボット300の搭乗にロボット通信遮断対応が必要かどうかの判断は、ロボット300の通信方式や動作方式により行われる。
【0072】
すなわち、ロボット300が携帯電話回線などを使用しており、エレベーター搭乗中にロボット300とロボット制御サーバ200との通信が途切れる可能性が非常に低い場合には、エレベーター連携部216は、ロボット300のエレベーター搭乗に連携サーバ100のロボット通信遮断対応が必要ないと判断する。
【0073】
ステップS605で、連携サーバ100のロボット通信遮断対応が必要ないと判断した場合(S605のNO)には、エレベーター連携部216は、エレベーター20を呼び出し、エレベーター20へのロボット300の搭乗状態通知を行って、エレベーター20を移動させ、エレベーター20の扉を開閉して、ロボット300をエレベーター20に搭乗させる(S606)。そして、エレベーター20が目的階に到着後、エレベーター連携部216は、エレベーター20の扉を開閉し、ロボット300を降機させる(S607)。その後、エレベーター連携部216は、連携サーバ100に対してエレベーター連携の終了通知を行い、処理を終了する。
【0074】
逆に、ステップS605で、エレベーター連携部216がエレベーター20への搭乗にロボット通信遮断対応が必要であると判断した場合(S605のNO)には、
図8の処理に移り、後述するエレベーター連携処理(S800)を実施する。なお、ステップS800のエレベーター連携処理は、ロボット制御サーバ200のエレベーター連携部216と、連携サーバ100のロボット連携部116との連携によって行われる。
【0075】
<ロボット搭乗確認処理の流れ>
図7は、連携サーバ100のロボット搭乗確認部113によって実施されるロボット搭乗確認処理(S700)を示すフローチャートである。
まず、ロボット搭乗確認部113は、連携サーバ100からロボット制御サーバ200に送られるエレベーター連携リクエストに含まれるロボット300の種別を確認する(S701)。その後、ロボット搭乗確認部113は、ロボット種別がロボット仕様情報DB122に存在する既知のロボットか否かを確認する(S702)。
【0076】
ステップS702で、連携サーバ100から送られたエレベーター連携リクエストの中のロボット種別がロボット仕様情報DB122に含まれていない場合(S702のNO)には、ロボット搭乗確認部113は、そのロボット300は事前に登録がされていない未知のロボットであると判定する。そして、ロボット搭乗確認部113は、搭乗可能なエレベーターがないことを、連携サーバ100に返却して(S703)、ロボット搭乗確認処理を終了する。なお、全て事前登録されているロボット300が対象となる場合には、ステップS702とステップS703の処理はなくても構わない。
【0077】
ステップS702で、連携サーバ100から送られたエレベーター連携リクエストの中のロボット種別がロボット仕様情報DB122に含まれている場合、つまりロボット300が既知のロボットである場合(S702のYES)には、ロボット搭乗確認部113は、ロボット300がエレベーター20に搭乗可能か否かを判断する(S704)。すなわち、ロボット搭乗確認部113は、ロボット仕様情報DB122の内容及び、エレベーター仕様情報DB123の内容に基づいてロボットの形状及び重量を確認し、ロボット300がエレベーター20に搭乗可能か否かを判断する。そして、ステップS704で、搭乗可能と判断した場合(S704のYES)には、ロボット搭乗確認部113は、エレベーター運用情報DB124に格納されているエレベーター状態を確認する(S705)。
【0078】
次に、ロボット搭乗確認部113は、ロボット300が搭乗可能なエレベーター20があるか否かを判断する(S706)。ステップS706で、ロボット300が搭乗可能なエレベーター20がある場合(S706のYES)には、ロボット搭乗確認部113は、エレベーター運用情報DB124に格納されているエレベーター番号をロボット制御サーバ200に返却し(S707)、ロボット搭乗確認処理を終了する。
【0079】
ステップS704で、ロボット300がエレベーター20に搭乗可能ではない場合(S704のNO)、及びステップS706で、ロボット300が搭乗可能なエレベーター20がない場合(S706のNO)には、ロボット搭乗確認部113は、搭乗可能なエレベーター20がないことをロボット制御サーバ200に返却し(S708)、処理を終了する。以上で、一連のロボット搭乗確認処理が終了する。
【0080】
ここでは、ロボット300が搭乗可能なエレベーター20として、停止中のエレベーター20を対象としているが、例えば、ステップS700と同様の処理を行うことで、エレベーター20内の状態を確認し、搭乗している人や他ロボットの数が少なければ、移動中のエレベーターを搭乗可能なエレベーターと判断してもよい。
【0081】
<エレベーターとロボットの連携処理の流れ>
図8は、ロボット300、ロボット連携部116及びエレベーター連携部216により実施されるエレベーター連携処理のフローチャートである。
まず、エレベーター連携部216は、エレベーター20をロボット300が存在する階まで呼び出し、エレベーター20の扉を開き、エレベーター20内へのロボット300の移動を誘導する。そして、エレベーター連携部216は、ロボット300をエレベーター20に搭乗させる(S801)。
【0082】
次いで、ロボット制御サーバ200のエレベーター連携部216は、連携サーバ100のロボット連携部116に対して、目的階情報と合わせてエレベーター連携依頼を出力する(S802)。すると、連携サーバ100のロボット連携部116は、エレベーター20の閉扉、及びエレベーター20の目的階の設定を行い、エレベーター20の移動を開始させる(S803)。
【0083】
次に、連携サーバ100のロボット連携部116は、エレベーター運用情報DB124からエレベーターの状態を確認し、エレベーター20が目的階にいるか否かを判断する(S804)。ステップS804で、エレベーター20が移動中で目的階に到着していなければ(S804のNO)、連携サーバ100の画像解析部114及びロボット状態判断部115により、
図9で後述するロボット状態確認処理(S900)が実施される。
【0084】
その後、ロボット連携部116は、エレベーター20に対して、ロボット300と現在連携中であることを示す信号を送信する(S805)。ステップS805において、ロボット300と連携中であることを示す信号の送信後は、ステップS804に戻って処理を継続する。
【0085】
ステップS804で、ロボットが目的階にいると判定された場合(S804のYES)も、連携サーバ100の画像解析部114及びロボット状態判断部115により再度ロボット状態確認処理(S900)が実施される。
そして、ロボット状態確認処理(S900)の後で、ロボット連携部116は、ステップS900の結果からロボット300が降機可能か否かを判断する(S806)。ステップS806で、ロボット300がエレベーター20から降機可能である場合(S806のYES)には、ロボット連携部116は、ロボット300のエレベーター連携を終了する(S807)。すると、ロボット制御サーバ200のエレベーター連携部216が、ロボット300をエレベーター20の外に移動させ、エレベーター20から降機させて(S808)、処理を終了する。
【0086】
ステップS806で、ロボット300が降機できないとロボット連携部116が判断した場合(S806のNO)には、ロボット連携部116は、降機できない原因が時間経過により解決可能か否かを判断する(S809)。ステップS809の判断では、例えば、まだ扉が開いていない、前方に人や別のロボットがいる、といった判断がなされる。ステップS809で、時間経過により解決できると判断された場合には(S809のYES)、連携サーバ100の画像解析部114及びロボット状態判断部115により、ロボット状態確認処理(S900)が再度実行される。
【0087】
一方、ステップS809で、ロボット連携部116が時間経過で解決できない場合(S809のNO)には、ロボット連携部116は、降機できない原因がロボット動作により解決可能か否かを判断する(S810)。ここで、ロボット動作で解決可能な場合というのは、例えば、なんらかの原因でロボット300が降機位置からずれてしまい、ロボット300がロボット300自身の動作により降機位置に戻ることができる場合などが考えられる。
【0088】
ステップS810で、降機できない原因がロボット動作により解決可能あると判定された場合(S810のYES)には、ロボット連携部116は、ロボット300がロボット連携部116からの情報受信が可能か否か、すなわち「情報受信の可否」を判断する(S811)。そして、ロボット300がロボット連携部116からの情報受信が「可」であれば(S811のYES)、ロボット連携部116は、エレベーター連携部216に対して降機動作前に位置補正等の解決動作を予約し(S812)、ステップS807のエレベーター連携の終了処理に移行する。
【0089】
ステップS811で、ロボット300がロボット連携部116からの情報受信が「否」であると判定された場合(S811のNO)には、ステップS812の解決動作の予約処理をすることなく、ステップS807のエレベーター連携の終了処理に戻る。
【0090】
ステップS810で、降機できない原因がロボット300の自律動作で解決できないと判断した場合(S810のNO)には、ロボット連携部116は、ロボット300による自律的な復旧ができないとしてロボット制御サーバ200に対してアラートを発報する(S813)。なお、ステップS813のアラートは、ロボット制御サーバ200以外にも、例えば管理室やロボット300の整備スタッフに対して発報されるようにしてもよい。
ここで、ステップS810で、ロボット300の自律動作で解決できない場合としては、例えば、ロボット300がエレベーター内で転倒した場合、あるいは破損して動作できなくなっているような場合などが考えられる。
【0091】
ステップS813のアラート発報後は、ロボット300がエレベーター内で停止した状態で他のロボットや人から利用されないようにエレベーター運用状態を異常状態に切り替え、エレベーター連携処理を終了する(S814)。
ここで、エレベーター20が目的階到着前にロボット300が異常状態であると判断された場合には、必ずエレベーター20を特定階に移動させるなどの異常状態における特有の処理を行う必要があることは言うまでもない。
【0092】
<ロボット状態確認処理の流れ>
図9は、
図8のフローチャートに示されているロボット状態確認処理の具体的な内容を示したフローチャートである。このロボット状態確認処理では、エレベーター20内の画像を基に、エレベーター20に搭乗しているロボット300の状態が判断される。
まず、連携サーバ100の画像解析部114は、エレベーター管理装置30を介してエレベーター内カメラ50からエレベーター内の画像を取得する(S901)。次に、画像解析部114は、取得した画像を解析し、ロボット状態判断情報DB121及びエレベーター仕様情報DB123に保存されている情報を基に、エレベーター20内の情報であるロボット300の姿勢と搭乗している位置を取得する(S902)。
【0093】
次に、ロボット状態判断部115は、ステップS902で得られたロボット300の姿勢と位置情報を基に、ロボット状態が正常であるか、あるいは異常であるか、また降機可能か否かを判定する(S903)。例えば、エレベーター内中央1m四方内にロボット300が立っていた場合を正常と判定し、ロボット300が中央1m四方の範囲内から出ているか、または転倒しているという状態であれば異常と判定する。
【0094】
次に、ロボット状態判断部115は、ロボット300が、ロボット仕様情報DB122内の情報受信が可能か否かを確認する(S904)。ステップS904で、ロボット300の状態において、ロボット300が情報受信可能であると判定した場合(S904のYES)には、ロボット状態判断部115は、判定したロボット状態をロボット制御サーバ200へ送信する(S905)。
【0095】
このステップS905では、ロボット300の状態が「正常」または「異常」という情報と、ステップS902によって得られたロボット300の姿勢、向き、エレベーター内の位置などがロボット制御サーバ200に送られる。
ロボット制御サーバ200は、これらの情報を利用することにより、ロボット300のエレベーター20からの降機を円滑に制御することができる。
【0096】
なお、ここではエレベーター内カメラ50からの画像を用いてロボットの搭乗位置と姿勢を基に、ロボット300の正常ないし異常を判定しているが、ロボットの姿勢、位置情報などのロボットの状態判定には、これ以外にも様々なケースが考えられる。例えば、ステップS902において、ロボット300の状態だけではなく、同乗している人の人数、位置をカウントしたり、ステップS903において、同乗している人とロボットとの位置関係からロボットが降機可能か否かの判断を行ったりするケースも考えられる。
【0097】
また、ロボットが複数台、エレベーターに搭乗している場合には、ステップS902でエレベーター20に搭乗している他のロボットの数、姿勢、位置を取得したり、ステップS903において、ロボット同士の位置関係からロボットが降機可能かの判断に利用したりするケースも考えられる。
【0098】
さらに、エレベーター内カメラ50の画像ではなく、エレベーター内のロボット300や人の動作をトラッキングすることにより、ロボット300と人が接触したことやロボット300がエレベーター内の壁にぶつかったといったイベントも検知するケースも考えられる。
【0099】
また、ロボット300が荷物を運搬しているような場合において、ステップS902においてロボット300だけではなく、荷物状態も確認するケースや、ステップS901でカメラではなくエレベーターに付属している加重センサを用いてロボット300がエレベーター内に入っていることを判定するケースなども考えられる。
【0100】
以上、本発明の実施形態である、ロボットサービスシステムを説明したが、本発明は上述した実施の形態例に限定されるものではなく、特許請求の範囲の記載を逸脱しない限りにおいて、さらに多くの応用例、変形例を含むことは勿論である。
【符号の説明】
【0101】
10…サービスエリア、20…エレベーター、30…エレベーター管理装置、40…エレベーター制御装置、50…エレベーター内カメラ、60…ネットワーク(構内LAN)、100…エレベーターロボット連携サーバ(連携サーバ)
101…メモリ、102…CPU、103…入出力インタフェース(I/O)、104…補助記憶装置、105…ネットワークインタフェース(I/F)
111…エレベーター制御部、112…ロボット制御サーバ通信部、113…ロボット搭乗確認部、114…画像解析部、115…ロボット状態判断部、116…ロボット連携部、121…ロボット状態判断情報DB、122…ロボット仕様情報DB、123…エレベーター仕様情報DB、124…エレベーター運用情報DB
200…ロボット制御サーバ、
201…メモリ、202…CPU、203…入出力インタフェース(I/O)、204…補助記憶装置、205…ネットワークインタフェース(I/F)
211…サービス制御部、212…シナリオ制御部、213…音声処理部、214…画像処理部、215…対話処理部、216…エレベーター連携部、221…地図情報DB
300…ロボット
301…メモリ、302…CPU、303…入出力インタフェース(I/O)、304…補助記憶装置、305…ネットワークインタフェース(I/F)、306…機構部、307…機構制御部、308…スピーカ、309…マイク、310…発光部、311…カメラ、321…位置管理部、322…ロボット行動制御部