(57)【要約】      （修正有）【課題】単一のシステムで制御されていなくても、あるいは、互いにコミュニケーションを取らなくても、接近する自律移動体を適切に回避し、与えられたタスクを効率よく実行することのできる自律移動体およびその制御プログラムを提供する。【解決手段】自律移動体１００は、与えられたタスクを実行するために、計画された移動経路に沿って移動する自律移動体である。自律移動体１００は、他のタスクが与えられた他の自律移動体とその動作状況とを認識する外界センサ１３１、１３２と、外界センサによって認識した他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、他の自律移動体を回避するか否かを判断する回避判断部と、回避判断部の判断に基づいて移動ユニットを制御する移動制御部とを備える。【選択図】図１
2019219734.tif 000002
【特許請求の範囲】
【請求項１】
与えられたタスクを実行するために、計画された移動経路に沿って移動する自律移動体であって、
他のタスクが与えられた他の自律移動体とその動作状況とを認識する外界センサと、
前記外界センサによって認識した前記他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、前記他の自律移動体を回避するか否かを判断する回避判断部と、
前記回避判断部の判断に基づいて移動ユニットを制御する移動制御部と
を備える自律移動体。
【請求項２】
前記回避判断部は、前記他の自律移動体が自機と同種の自律移動体と認識した場合は、前記同種の自律移動体に共通して予め設定された回避ルールに基づいて前記他の自律移動体を回避すると判断する請求項１に記載の自律移動体。
【請求項３】
前記外界センサは、前記回避ルールに基づいて計画した回避経路に沿って移動を開始した後に、他の自律移動体とその動作状況とを継続して認識し、
前記回避判断部は、前記外界センサによって認識した前記他の自律移動体と自機とが接触する可能性があることを再度予測した場合に、前記他の自律移動体を更に回避するか否かを判断する請求項２に記載の自律移動体。
【請求項４】
前記回避判断部は、前記動作状況から前記他の自律移動体が実行する前記他のタスクを認識できる場合は、自機に与えられたタスクとの比較に基づいて前記他の自律移動体を回避するか否かを判断する請求項１から３のいずれか１項に記載の自律移動体。
【請求項５】
前記他の自律移動体を回避する場合に自機の動作状況を外界に呈示する呈示部を備える請求項１から４のいずれか１項に記載の自律移動体。
【請求項６】
前記移動制御部は、自機の進行方向を前記移動経路の斜め前方に変更した回避経路により前記他の自律移動体を回避する場合に、自機と前記他の自律移動体との距離が第１距離である場合の前記移動経路と第１回避経路とが成す角度である第１角度を、前記距離が前記第１距離より遠い第２距離である場合の前記移動経路と第２回避経路とが成す第２角度より大きく設定する請求項１から５のいずれか１項に記載の自律移動体。
【請求項７】
前記他の自律移動体と相互通信を行う通信部を備え、
前記移動制御部は、前記相互通信が確立されている間は、前記回避判断部の判断によらず、前記相互通信の通信結果に基づいて前記移動ユニットを制御する請求項１から６のいずれか１項に記載の自律移動体。
【請求項８】
与えられたタスクを実行するために、計画された移動経路に沿って移動する自律移動体の制御プログラムであって、
他のタスクが与えられた他の自律移動体とその動作状況とを認識する認識ステップと、
前記認識ステップによって認識した前記他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、前記他の自律移動体を回避するか否かを判断する回避判断ステップと、
前記回避判断ステップの判断に基づいて移動ユニットを制御する移動制御ステップと
をコンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は自律移動体、および自律移動体の制御プログラムに関する。
【背景技術】
【０００２】
特定の環境下で与えられたタスクを実行する自律移動型ロボットが知られている。例えば、特許文献１には自律移動体であるロボットが移動中に干渉する可能性がある障害物を回避して移動するように制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−０３５１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特定の環境下で１台の自律型移動体がタスクを実行する場合には、障害物を回避しながら円滑な自律移動を行い得る。しかし近年は、特定の環境下で複数の自律移動体が与えられた別個のタスクをそれぞれ実行する状況が増えてきている。このような状況においては、自律移動体同士で互いに協調して移動経路を調整することが難しく、円滑な自律移動が妨げられる。特に、２つの自律移動体が互いに接近することにより両者が接触する可能性があるような場合には、両者の回避経路が重なり合うと、さらに回避動作を行うことになり作業効率を著しく低下させてしまう。
【０００５】
本発明は、このような問題を解決するためになされたものであり、単一のシステムで制御されていなくても、あるいは、互いにコミュニケーションを取らなくても、接近する自律移動体を適切に回避し、与えられたタスクを効率よく実行することのできる自律移動体およびその制御プログラムを提供するものである。
【課題を解決するための手段】
【０００６】
本発明の第１の態様による自律移動体は、与えられたタスクを実行するために、計画された移動経路に沿って移動する自律移動体であって、他のタスクが与えられた他の自律移動体とその動作状況とを認識する外界センサと、外界センサによって認識した他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、他の自律移動体を回避するか否かを判断する回避判断部と、回避判断部の判断に基づいて移動ユニットを制御する移動制御部とを備える。
【０００７】
このように外界センサで他の自律移動体とその動作状況を認識し、他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、他の自律移動体を回避するか否かを判断するので、単一のシステムで制御されていなくても、あるいは、互いにコミュニケーションを取らなくても、他の自律移動体を状況に応じて適切に回避し、与えられたタスクを効率よく実行することができる。
【０００８】
上記の自律移動体において、回避判断部は、他の自律移動体が自機と同種の自律移動体と認識した場合は、当該同種の自律移動体に共通して予め設定された回避ルールに基づいて他の自律移動体を回避することを判断しても良い。このように判断することにより、回避判断部は、他の自律移動体と共通の回避ルールに基づいて回避動作を行うことができる。そのため、自律移動体は、他の自律移動体と回避経路が重なり合うことを防ぐことができる。
【０００９】
上記の自律移動体において、外界センサは、上記回避ルールに基づいて計画した回避経路に沿って移動を開始した後に他の自律移動体とその動作状況とを継続して認識し、回避判断部は、外界センサによって認識した他の自律移動体と自機とが接触する可能性があることを再度予測した場合に、他の自律移動体を更に回避するか否かを判断しても良い。このように判断することにより、同種の自律移動体が期待した回避動作を実行しない場合においても安全に与えられたタスクを実行することができる。
【００１０】
また、上記の自律移動体において、回避判断部は、上記動作状況から他の自律移動体が実行する他のタスクを認識できる場合は、自機に与えられたタスクとの比較に基づいて他の自律移動体を回避するか否かを判断しても良い。例えば、他の自律移動体のタスクが急を要するものである場合は、他の自律移動体の移動を優先させることができる。このような判断を行うことにより、たとえ同じシステムの下で制御されていなくても、他の自律移動体と擬似的な協調動作を行うことができる。
【００１１】
また、上記の自律移動体において、他の自律移動体を回避する場合に自機の動作状況を外界に呈示する呈示部を備えても良い。このような呈示部を備えることにより、自律移動体は、自機の動作状況に応じた回避動作を行うように他の自律移動体に対して促すことができる。
【００１２】
また、上記の自律移動体において、移動制御部は、自機の進行方向を移動経路の斜め前方に変更した回避経路により他の自律移動体を回避する場合に、自機と他の自律移動体との距離が第１距離である場合の移動経路と第１回避経路とが成す角度である第１角度を、当該距離が第１距離より遠い第２距離である場合の移動経路と第２回避経路とが成す第２角度より大きく設定してもよい。このように設定することにより、自律移動体は、旋回して他の自律移動体を回避する場合に、スムーズに他の自律移動体を回避することができる。
【００１３】
また、自律移動体は、他の自律移動体と相互通信を行う通信部を備え、移動制御部は、相互通信が確立されている間は、回避判断部の判断によらず、相互通信の通信結果に基づいて移動ユニットを制御しても良い。相互通信が可能であれば、通信を利用したコミュニケーションにより他の自律移動体と協調動作を行えば良い。互いにコミュニケーションを行ってそれぞれの移動動作を確定する方がより安全である。一方で、通信が確立されていない場合でも、自律移動体は、回避判断部の判断によって回避動作を安定的に行うことができる。
【００１４】
本発明の第２の態様における自律移動体の制御プログラムは、与えられたタスクを実行するために、計画された移動経路に沿って移動する自律移動体の制御プログラムであって、他のタスクが与えられた他の自律移動体とその動作状況とを認識する認識ステップと、
認識ステップによって認識した前記他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、他の自律移動体を回避するか否かを判断する回避判断ステップと、回避判断ステップの判断に基づいて移動ユニットを制御する移動制御ステップと、をコンピュータに実行させる。
【００１５】
このように外界センサで他の自律移動体とその動作状況を認識し、他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、他の自律移動体を回避するか否かを判断するので、単一のシステムで制御されていなくても、あるいは、互いにコミュニケーションを取らなくても、他の自律移動体を状況に応じて適切に回避し、与えられたタスクを効率よく実行することができる。
【発明の効果】
【００１６】
本発明により、単一のシステムで制御されていなくても、あるいは、互いにコミュニケーションを取らなくても、接近する自律移動体を適切に回避し、与えられたタスクを効率よく実行することのできる自律移動体およびその制御プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に係る移動ロボットの外観斜視図である。
【図２】移動ロボットの制御ブロック図である。
【図３】第１例における回避判断の状況を説明する図である。
【図４】第１例におけるすれ違い動作中の状況を説明する図である。
【図５】移動ロボットの移動に関する処理フローを示すフロー図である。
【図６】第２例における回避判断の状況を説明する図である。
【図７】第２例におけるすれ違い動作中の状況を説明する図である。
【図８】第３例における回避判断の状況を説明する図である。
【図９】第３例における待機動作の状況を説明する図である。
【図１０】第４例における回避判断の状況を説明する図である。
【図１１】第４例におけるすれ違い動作中の状況を説明する図である。
【図１２】第５例における回避経路を説明する図である。
【発明を実施するための形態】
【００１８】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００１９】
図１は、本実施形態に係る移動ロボット１００の外観斜視図である。移動ロボット１００は、自律移動体の一例である。移動ロボット１００は、大きく分けて台車部１１０と本体部１２０によって構成される。
【００２０】
台車部１１０は、円筒形状の筐体内に、それぞれが走行面に接地する２つの駆動輪１１１と１つのキャスター１１２とを支持している。２つの駆動輪１１１は、互いに回転軸芯が一致するように配設されている。それぞれの駆動輪１１１は、不図示のモータによって独立して回転駆動される。駆動輪１１１は、移動ロボットを移動させるための移動ユニットの一例である。キャスター１１２は、従動輪であり、台車部１１０から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、台車部１１０の移動方向に倣うように追従する。
【００２１】
移動ロボット１００は、例えば、２つの駆動輪１１１が同じ方向に同じ回転速度で回転されれば直進し、逆方向に同じ回転速度で回転されれば台車部１１０の２つの駆動輪１１１のほぼ中央を通る鉛直軸周りに旋回する。すなわち、移動ロボット１００は、２つの駆動輪１１１の回転方向、回転速度がそれぞれ制御されることにより、任意の方向へ並進、旋回することができる。
【００２２】
台車部１１０は、上面の周縁部にレーザスキャナ１３２を備える。レーザスキャナ１３２は、水平面内の一定の範囲をステップ角ごとにスキャンして、それぞれの方向に障害物が存在するか否かを出力する。さらに、障害物が存在する場合には、その障害物までの距離を出力する。
【００２３】
本体部１２０は、主に、台車部１１０の上面に搭載された胴部１２１、胴部１２１の上面に載置された頭部１２２、胴部１２１の側面に支持されたアーム１２３、アーム１２３の先端部に設置されたハンド１２４、およびＬＥＤバー１４２を備える。アーム１２３とハンド１２４は、不図示のモータを介して駆動され、様々な物体を制御された姿勢で把持する。図は、搬送物の一例として容器を把持している様子を示す。胴部１２１は、不図示のモータの駆動力により、台車部１１０に対して鉛直軸周りに回転することができる。したがって、移動ロボット１００は、把持部が搬送物を把持して特定方向を向く姿勢を保ったまま任意の方向へ移動することもできる。
【００２４】
ＬＥＤバー１４２は、複数のＬＥＤおよび導光材を有する発光装置であり、ＬＥＤのそれぞれが鉛直軸に対して放射方向へ発光するように、胴部１２１の上部の円環状の外周部に設置されている。ＬＥＤバー１４２は、発光色や点滅周期を変化させることができ、そのパターンにより移動ロボット１００の動作状況やタスクに関する情報を周囲に呈示することができる。また、胴部１２１には、コントロールユニット１９０が設けられている。コントロールユニット１９０は、後述の制御部とメモリ等を含む。
【００２５】
頭部１２２は、主に、ステレオカメラ１３１および表示パネル１４１を備える。ステレオカメラ１３１は、同じ画角を有する２つのカメラユニットが互いに離間して配置された構成を有し、それぞれのカメラユニットで撮像された画像を画像データとして出力する。
【００２６】
表示パネル１４１は、例えば液晶パネルであり、キャラクターの顔をイラストで表示したり、移動ロボット１００に関する情報をテキストやアイコンで呈示したりする。表示パネル１４１にキャラクターの顔を表示すれば、表示パネル１４１が擬似的な顔部であるかの印象を周囲の観察者に与えることができる。また、表示パネル１４１は、表示面にタッチパネルを有し、ユーザからの指示入力を受け付けることができる。
【００２７】
頭部１２２は、不図示のモータの駆動力により、胴部１２１に対して鉛直軸周りに回転することができる。したがって、ステレオカメラ１３１は、任意の方向の対象物を撮影することができ、また、表示パネル１４１は、任意の方向へ向けて表示内容を呈示することができる。なお、以降の説明においては、図示するように、移動ロボット１００が移動する移動平面をｘｙ平面、移動平面に対する鉛直軸方向をｚ軸と定める。
【００２８】
図２は、移動ロボット１００の制御ブロック図である。制御部２００は、例えばＣＰＵであり、本体部１２０のコントロールユニット１９０に格納されている。台車駆動ユニット２１０は、駆動輪１１１を駆動するための駆動回路やモータを含む。制御部２００は、台車駆動ユニット２１０へ駆動信号を送ることにより、駆動輪１１１の回転制御を実行する。また、制御部２００は、台車駆動ユニット２１０からエンコーダ等のフィードバック信号を受け取って、台車の移動方向を把握する。台車駆動ユニット２１０は、制御部２００と協働して、移動制御部としての機能を担う。
【００２９】
上体駆動ユニット２２０は、アーム１２３およびハンド１２４を含む把持部、胴部１２１および頭部１２２を駆動するための駆動回路やモータを含む。制御部２００は、上体駆動ユニット２２０へ駆動信号を送ることにより、把持制御や、胴部１２１および頭部１２２の回転制御を実行する。また、制御部２００は、上体駆動ユニット２２０からエンコーダ等のフィードバック信号を受け取って、把持部の状態や胴部１２１および頭部１２２の向きを把握する。
【００３０】
センサユニット１３０は、他の移動ロボットや障害物、周囲に存在する人物、把持している搬送対象物などを検出する各種センサを含み、台車部１１０および本体部１２０に分散して配置されている。ステレオカメラ１３１およびレーザスキャナ１３２は、センサユニット１３０を構成する要素である。制御部２００は、センサユニット１３０に制御信号を送ることにより、各種センサを駆動してその出力信号や出力データを取得する。制御部２００は、これらの出力信号や出力データを解析して、他の移動ロボット１００やその動作状況などを認識する。すなわち、センサユニット１３０は、制御部２００と協働して、他の自律移動体やその動作状況などを認識する外界センサとしての機能を担う。
【００３１】
メモリ２５０は、不揮発性の記憶媒体であり、例えばソリッドステートドライブが用いられる。メモリ２５０は、移動ロボット１００を制御するための制御プログラムの他にも、制御に用いられる様々なパラメータ値、関数、ルックアップテーブル、比較画像データ等を記憶している。メモリ２５０は、移動ロボット１００が自律移動する環境を表現する環境地図を格納していても良い。
【００３２】
ユーザＩＦ２６０は、ユーザが移動ロボット１００へ指示を入力する入力部であり、表示パネル１４１に重畳されたタッチパネルはその一部である。また、物理的なスイッチに限らず、マイクを用いた音声入力や、ステレオカメラ１３１を用いたジェスチャー入力などをユーザＩＦ２６０として組み込んでも良い。
【００３３】
呈示ユニット１４０は、ユーザや周囲に存在する人物、他の移動ロボットなどに移動ロボット１００の動作状況やタスクに関する情報を周囲に直接的または間接的に呈示するユニットであり、台車部１１０および本体部１２０に分散して配置されている。表示パネル１４１およびＬＥＤバー１４２は、呈示ユニット１４０を構成する要素である。呈示ユニット１４０は、他にもスピーカや振動子などを含んでも良い。制御部２００は、呈示ユニット１４０に制御信号を送ることにより、それぞれの要素を動作させる。
【００３４】
制御部２００は、制御に関わる様々な演算を実行する機能演算部としての役割も担う。回避判断部２０１は、外界センサによって認識した他の自律移動体と自機とが互いに接近することにより両者が接触する可能性があることを予測した場合に、他の自律移動体を回避するか否かを判断する。具体的な判断手法については後に詳述する。
【００３５】
近時、複数の移動ロボットを自律移動させて、様々なタスクを同時並行的に実行させたいという要望が高まっている。例えば工場などの管理された環境下で複数の移動ロボットにそれぞれ別個のタスクを実行させる場合には、それらの移動ロボットを統括的に管理するサーバを設置して、サーバがそれぞれの移動ロボットの移動やタスクの実行を制御するようにシステムを構築できる。サーバで統括的な管理を行わなくても、共存する人間が制限されているような管理された環境においては、共通のフォーマットに則った通信手段により互いにコミュニケーションを取り合える移動ロボットのみを利用することもできる。この場合は、それぞれの移動ロボットが通信手段によって互いにコミュニケーションを取り合い、移動経路やタスクの実行を調整し合うことができる。
【００３６】
しかし、複数の移動ロボットに別々のタスクを実行させたい環境は、年々拡がりを見せている。例えば、空港であったり、ショッピングモールであったり、テーマパークであったりする。このような多くの人が集う環境においては、移動ロボットに要求されるタスクも様々であり、単一のシステムで管理される移動ロボットのみでこれらのタスクを全て賄うことが困難になってきた。また、困難なだけでなく、例えば、荷物を運搬する移動ロボットと清掃を行う移動ロボットとを単一のシステムで管理することに合理性はあまり認められない。そこで、単一のシステムや共通の通信手段で括られる群に属さずとも、他の移動ロボットと干渉せず、与えられたタスクを円滑に実行する移動ロボットが望まれるようになってきている。本実施形態における移動ロボット１００は、このような要望に応えるものである。
【００３７】
上述のように、移動ロボット１００は、他の移動ロボットとコミュニケーションを取るための通信装置を備えていない。また、複数の移動ロボットを統括的に管理するサーバから指令を受ける通信装置も備えていない。このような移動ロボット１００においては、与えられたタスクを円滑かつ着実に実行するために、他の自律移動体と自機と互いに接近することにより両者が接触する可能性がある場合に、これをどのように回避するかがひとつの重要なポイントとなる。このような場合における移動ロボット１００の動作を、具体例を用いて説明する。
【００３８】
図３は、第１例における回避判断の状況を説明する図である。ここで、移動ロボット１０１は、搬送物９０１を運搬するタスクを与えられた他の自律移動体であり、上述の移動ロボット１００と同様の構成を備えるものとする。また、移動ロボット１０２は、搬送物９０２を搬送するタスクを与えられた自機であり、やはり上述の移動ロボット１００と同様の構成を備えるものとする。移動ロボット１０１と移動ロボット１０２は、独立してそれぞれのタスクを実行しており、通信手段を用いて互いにコミュニケーションを取り合うことはない。
【００３９】
図３は時刻Ｔ＝ｔ１１の時点における移動ロボットの状況を示している。自機である移動ロボット１０２は、ｘ軸プラス方向へ移動している。一方、他の自律移動体である移動ロボット１０１は同一ライン上をｘ軸マイナス方向へ移動しており、対向する移動ロボット１０２とは互いに接近しつつある。すなわち、移動ロボット１０１が計画した移動経路と移動ロボット１０２が計画した移動経路とが偶発的に重なってしまい、しかも移動ロボット１０１と移動ロボット１０２とは図に示す予測接触位置において互いに接触することになる。
【００４０】
自機である移動ロボット１０２は、ステレオカメラ１３１やレーザスキャナ１３２で外界の状況を観察しながら自律移動している。制御部２００は、自律移動中に、ステレオカメラ１３１が捉えた画像を画像解析することにより前方に移動ロボット１０１を認識すると、続いてその動作状況を確認する。確認すべき動作状況は、予め複数の項目として設定されており、制御部２００は、センサユニット１３０の出力を利用して、移動ロボット１０１の動作状況を確認する。制御部２００は、確認すべき動作状況の一つとしてまず、移動ロボット１０１の移動方向とその速度を確認する。
【００４１】
制御部２００は、ステレオカメラ１３１から画像データを連続的に取得することにより、その差分から、移動ロボット１０１の移動方向とその速度を演算する。あるいは、レーザスキャナ１３２の出力を連続的に取得することにより、移動ロボット１０１の移動方向とその速度を演算しても良い。制御部２００は、認識した移動ロボット１０１の形状や色などに応じて、いずれのセンサに基づいて移動ロボット１０１の移動方向とその速度を演算するかを選択しても良い。
【００４２】
また、制御部２００は、ステレオカメラ１３１から取得した画像データに含まれる他の自律移動体および自機の形状、姿勢、および奥行情報等から、他の自律移動体と自機との距離を演算する。なお、制御部２００は、ステレオカメラ１３１に代えて、あるいはステレオカメラ１３１に加えて、レーザスキャナ１３２の出力を用いてもよい。
【００４３】
移動ロボット１０１の移動方向とその速度を演算し、そして移動ロボット１０１と移動ロボット１０２との距離を演算することにより、制御部２００は、移動ロボット１０１と移動ロボット１０２とが将来接触する可能性があるか否かを予測する。ここで、接触する可能性がある場合とは、少なくとも自機が計画経路をそのまま進むことを想定した場合に、移動ロボット１０１の一部と移動ロボット１０２の一部とが予め設定された距離よりも近づく場合を含むものであり、両者が確実に接触する場合に限られない。
【００４４】
他の自律移動体（移動ロボット１０１）と自機（移動ロボット１０２）とが互いに接近することにより両者が接触する可能性があると制御部２００が認識した場合は、続いて、回避判断部２０１が、移動ロボット１０１を回避するか否かを判断する。
【００４５】
回避判断部２０１は、回避するか否かの判断を、確認した移動ロボット１０１の動作状況を踏まえて行う。例えば、回避判断部２０１が回避動作を行うことを判断した場合であって、他の自律移動体（移動ロボット１０１）が自機（移動ロボット１０２）と同種の自律移動体と認識した場合は、予め設定された回避ルールに従って回避動作を行うと判断する。ここで、予め設定された回避ルールとは、例えば、同種の移動ロボットと予め設定された条件の下ですれ違う場合には計画経路の左側に回避経路を生成してすれ違うというものである。換言すると、同種の移動ロボットに共通して予め設定された回避ルールに従って、移動ロボット１０１と移動ロボット１０２とは互いに相手の右側を通過する。
【００４６】
図を参照して、移動ロボット１０１と移動ロボット１０２とがすれ違う場合の例を具体的に説明する。図示のとおり、同種の移動ロボットである移動ロボット１０１と移動ロボット１０２とは、それぞれの計画経路が重なり、しかも互いに接近している。そこで、移動ロボット１０１および移動ロボット１０２は、計画経路の左側に回避経路をそれぞれ生成する。すなわち、回避経路は、予測接触位置の手前で計画経路を左側に外れ、予め設定された距離を進んだ後に右折して計画経路と平行に進む。そして、移動ロボット１０１と移動ロボット１０２とが互いにすれ違う予定の位置を過ぎるとそれぞれの計画経路に徐々に近づき合流する。
【００４７】
このように同種の移動ロボットが共通の回避ルールに従って回避動作を行うことにより、回避経路の重複を防ぎ、且つ、効率の良い回避経路を選択することができる。そのため、自律移動体は、与えられたタスクを効率よく実行することができる。なお、当然ながら、予め設定された回避ルールは、左側でなく右側に回避経路を生成してもよい。また、予め設定された回避ルールは、すれ違う際の速度についても定められていてもよい。あるいは、外界センサによって認識した他の自律移動体と自機との相対的な位置関係から、例えば自機の左側と他の自律移動体とが接触すると予測した場合には、自機の計画経路を右側に外れるように回避経路を生成してもよい。
【００４８】
このようにして、回避判断部２０１はすれ違い予定位置において移動ロボット１０１とすれ違うように回避経路を生成する。回避経路の生成に成功して回避動作を実行すると判断したら、制御部２００は、自機が回避経路に沿って移動するように台車駆動ユニット２１０を制御する。
【００４９】
図４は、回避動作中の状況を説明する図である。図４は時刻Ｔ＝ｔ１１の後の時刻Ｔ＝ｔ１２の時点における移動ロボットの状況を示している。図に示すように、移動ロボット１０１と移動ロボット１０２とは、それぞれが共通の回避ルールに従って計画経路の左側に回避経路を生成し、これに沿って回避動作を行っている。そして、移動ロボット１０１と移動ロボット１０２とは、すれ違い予定位置において互いにすれ違った後に、それぞれ計画経路に戻るように進んでいる。
【００５０】
なお、制御部２００は、回避動作中も継続してセンサユニット１３０の出力を取得している。このとき、制御部２００は、頭部１２２を回転させてステレオカメラ１３１により移動ロボット１０１の画像データを取得して、すれ違いが成功したことを認識してもよい。
【００５１】
また、移動ロボット１０２が計画経路の左側に回避経路を生成しこれに沿って回避動作を行った場合に、同種である筈の移動ロボット１０１が期待した回避動作を実行しない場合がある。すなわち、回避ルールに従って計画した回避経路に沿って移動を開始した後に、外界センサが認識した移動ロボット１０１の動作状況を認識した結果、回避判断部２０１が他の自律移動体に接触する可能性があることを再度予測する場合がある。このような場合には、回避判断部２０１は、他の自律移動体を更に回避するか否かを判断する。つまり、移動ロボット１０２が回避経路に沿って移動を開始した後に、移動ロボット１０１が接近している場合には、回避判断部２０１は、移動ロボット１０１の動作状況を認識したうえで、移動ロボット１０１を回避する動作を実行する。
【００５２】
回避判断部２０１が上述のように回避動作を行うことを判断する一方で、回避判断部２０１は、確認した移動ロボット１０１が以下に示すような動作状況であることを踏まえて回避動作を行わないと判断する場合もある。
【００５３】
例えば、移動ロボット１０１のＬＥＤバー１４２が移動ロボット１０２を回避するように移動することを示す発光パターンで発光していることを認識した場合である。あるいは、移動ロボット１０１の表示パネル１４１が移動ロボット１０２を回避するように移動することを示すものであってもよい。同種の自律移動体である移動ロボット１０１および移動ロボット１０２は、予め設定されたＬＥＤバー１４２の発光パターンあるいは表示パネル１４１の表示パターンをそれぞれ記憶している。よって、移動ロボット１０２は、移動ロボット１０１が呈示するこのような動作状況を認識して回避動作を行わないと判断する。
【００５４】
また、移動ロボット１０１の動作状況として、移動ロボット１０２を回避する動作を行うことによって両者が接触する可能性がなくなった場合に、回避判断部２０１は、回避動作を行わないと判断してもよい。移動ロボット１０２は、回避するか否かを判断する場合に、予め設定された期間の移動ロボット１０１の動作状況を認識する。そのため、その期間内に移動ロボット１０１の移動方向とその速度が変化した場合に、回避判断部２０１はこのような判断を行うことができる。このように、他の自律移動体が自機を回避することが明らかな場合に、自機が回避動作を行わないと判断することで、移動ロボット１０２は移動ロボット１０１の回避経路との重複を防ぐことができる。
【００５５】
以上、図３および図４において説明した例は、同種の自律移動体とすれ違う場合であった。移動ロボット１０２は、同種でない移動体と接触する可能性がある場合には、センサユニット１３０から取得するステレオカメラ１３１やレーザスキャナ１３２の出力に基づいて、同種でない移動体に接触しないように台車駆動ユニット２１０を制御することができる。例えば、同種でない移動体と予め設定された距離よりも近づいた場合に、移動ロボット１０２は、自機の右側に接触すると予測した場合には計画経路から左側に外れて進行し、自機の左側に接触すると予測した場合には計画経路から右側に外れて進行する。
また、移動ロボット１０２は、自機の前部に接触すると予測した場合には速度を低下させ、自機の後部に接触すると予測した場合には速度を上げてもよい。あるいは、移動ロボット１０２は、同種でない移動体が計画経路上に進行する可能性がなくなるまで停止してもよい。
【００５６】
なお、制御部２００は、回避動作中には、表示パネル１４１に回避動作中であることを周囲に示すアイコンや文字を表示させても良い。さらに、周囲の人や移動ロボットが回避動作を認識しやすいように、制御部２００は、上体駆動ユニット２２０に制御信号を送って頭部１２２を回転させても良い。また、制御部２００は、回避動作中を表す発光パターンでＬＥＤバー１４２を発光させてもよい。
【００５７】
移動ロボット１０２のこのような呈示により、回避される側の移動ロボット１０１は、移動ロボット１０２と同種の移動ロボットであれば、コミュニケーションを取るための通信装置を互いに備えていなくても、回避動作中であることを認識できる。すなわち、移動ロボット１０２の表示パネル１４１の表示やＬＥＤバー１４２の発光パターンをステレオカメラ１３１で捉えることにより、移動ロボット１０２の回避動作を認識できる。移動ロボット１０２は、回避動作を認識した場合に、速度を低下させるなどの移動制御を行っても良い。
【００５８】
次に、移動ロボット１００の移動に関する処理フローについて説明する。図５は、移動ロボット１００の移動に関する処理フローを示すフロー図である。フローは、タスクが与えられて開始し、目的地に到着して終了するまでを表す。
【００５９】
制御部２００は、ステップＳ１０１で、タスクを実行するために必要な移動の移動経路を計画する。移動経路の計画は、例えば、メモリ２５０に格納された環境地図を参照して行う。例えば搬送物を搬送するタスクであれば、搬送先はユーザによって指定されるので、制御部２００は、環境地図を参照して現在地から搬送先までの移動経路を計画する。現在地は、例えば、センサユニット１３０として搭載するＧＰＳユニットの出力により認識される。
【００６０】
制御部２００は、ステップＳ１０２で、計画に沿って自機が移動するように、台車駆動ユニット２１０を制御する。制御部２００は、移動中はセンサユニット１３０からの出力信号や出力データを継続的に取得して、障害物や接近する移動体が存在しないかを監視する。障害物を発見した場合には、回避する経路を生成して当該障害物を回避する。制御部２００は、ステップＳ１０３で、接近する移動体が存在するか否かを確認し、存在しなければステップＳ１１５へ進む。存在すればステップＳ１０４へ進む。
【００６１】
制御部２００は、ステップＳ１０４で、発見した移動体が自律移動体であるか否かを判断する。自律移動体でないと判断したら、発見した対象が人である場合を含め、当該対象の移動を優先させるべく、ステップＳ１０５で自機の移動を停止させて、この移動体を回避する。そして、ステップＳ１０６で当該対象である移動体が退去したと判断できるまで、停止状態を維持して待機する。移動体が退去したと判断できたら、ステップＳ１１５へ進む。なお、自律移動体でない移動体を回避する一例として、停止状態を維持して待機する動作を示したが、制御部２００は、移動ロボット１００の速度を低下させるとか、移動ロボット１００が自律移動体でない移動体に対して所定の距離よりも近づかないという条件で移動するなど他の回避動作を行うことを判断しても良い。
【００６２】
制御部２００は、ステップＳ１０４で、発見した移動体が自律移動体であると判断したら、ステップＳ１０７へ進み、当該自律移動体の動作状況を確認する。制御部２００は、動作状況を確認した結果から、ステップＳ１０８で、当該自律移動体が自機と同じ方向へ移動しているか否かを判断する。同じ方向への移動でないと判断した場合は、ステップＳ１０９へ進む。
【００６３】
制御部２００は、ステップＳ１０９で、当該自律移動体と接触する可能性を演算し、その結果、接触する可能性があると判断した場合には、ステップＳ１１０へ進む。あるいは、制御部２００は、ステップＳ１０９で接触する可能性がないと判断した場合には、ステップＳ１１５へ進む。
【００６４】
回避判断部２０１は、ステップＳ１１０で、当該自律移動体を回避するか否かを判断する。回避判断部２０１は、当該自律移動体が自機を回避することが明らかな場合には、回避動作を行わないと判断する。この場合、回避判断部２０１はステップＳ１１５へ進む。一方、回避判断部２０１は、回避動作を行うと判断した場合には、ステップＳ１１１へ進む。回避判断部２０１は、ステップＳ１１１で、図３を用いて説明したように、当該自律移動体を回避する動作実行し、回避動作が完了したら、ステップＳ１１５へ進む。
【００６５】
制御部２００は、ステップＳ１０８で、当該自律移動体が自機と同じ方向へ移動していると判断した場合には、ステップＳ１１２へ進む。制御部２００は、ステップＳ１１２で、当該自律移動体を追い越すか否かを判断する。追越動作を行わないと判断した場合には、ステップＳ１１３へ進み、当該自律移動体に追従し、ステップＳ１１５へ進む。追越動作を行うと判断した場合には、ステップＳ１１４へ進み追越動作を実行し、ステップＳ１１５へ進む。
【００６６】
制御部２００は、ステップＳ１１５で、目的地に到着したか否かを確認する。目的地に到着していない場合には、ステップＳ１０２へ戻り、移動制御を継続する。目的地に到着した場合には、一連の移動制御を終了する。なお、ステップＳ１１１の回避動作は、図３を用いて説明した動作以外に様々な回避動作を採ることが可能である。そこで、回避動作について、さらにいくつかの例を説明する。
【００６７】
図６および図７を用いて、自機が他の自律移動体の移動方向とその速度を認識することによる回避動作の例について説明する。図６は、第２例における回避判断の状況を説明する図である。図６は、２台の移動ロボットの計画経路が交差している点で図３の状況と異なる。図６は、時刻Ｔ＝ｔ２１の時点における移動ロボット１０１および移動ロボット１０２の状況を示している。移動ロボット１０１は搬送物９０３を運搬するタスクを与えられた他の自律移動体である。移動ロボット１０２は搬送物を把持せず所定の目的地へ進行するタスクを与えられた自機である。図において、移動ロボット１０２はｘ軸プラス方向に進行し、移動ロボット１０１はｙ軸マイナス側からｙ軸プラス方面へ移動ロボット１０２の計画経路と交差するように進行している。このとき、他の自律移動体である移動ロボット１０１と自機である移動ロボット１０２とは、ほぼ同時に移動経路が交差する点（予測接触位置）に到達しようとしている。そのため、両者は接触する可能性があるという状況である。
【００６８】
このような状況において、制御部２００が、ステップＳ１０９で移動ロボット１０１と接触する可能性があると判断した場合は、回避判断部２０１は、移動ロボット１０１を回避するか否かを判断する。ここで、回避判断部２０１は、センサユニット１３０から取得される外観情報に基づいて移動ロボット１０１の動作状況を把握する。そして、回避判断部２０１は、移動ロボット１０１の移動方向とその速度および予測接触位置への到達予定時刻を演算するとともに、自機の移動方向とその速度とから移動ロボット１０２の予測接触位置への到達予定時刻を演算する。さらに、回避判断部２０１は、どちらが先に予測接触位置へ到達するかを演算する。回避判断部２０１は、自機が先に予測接触位置へ到達する場合であって、速度を上げることが可能な場合には、自機の速度を上げることにより移動ロボット１０１を回避すると判断する。一方、自機が先に予測接触位置へ到達する場合であっても、速度を上げることができない場合や他の自律移動体（移動ロボット１０２）が先に予測接触位置へ到達する場合には、自機の速度を下げることにより移動ロボット１０１を回避すると判断する。
【００６９】
図７は、第２例におけるすれ違い動作中の状況を説明する図である。図６では速度Ｖ＝ｖ２１であった移動ロボット１０２は、時刻Ｔ＝ｔ２１の後の時刻Ｔ＝ｔ２２の時点において、速度Ｖをｖ２１よりも速いｖ２２に変化させて計画経路を進行している。移動ロボット１０２が速度を上げたことにより、移動ロボット１０２は移動ロボット１０１を回避することに成功している。
【００７０】
次に、２台の移動ロボットの目的地が重なっている場合における回避動作の例について説明する。図８は、第３例における回避判断の状況を説明する図である。図８は、時刻Ｔ＝ｔ３１の時点における他の自律移動体である移動ロボット１０１および自機である移動ロボット１０２の状況を示している。移動ロボット１０１は搬送物９０３を運搬し、目的地で搬送物９０３をコンベア３００に載置するタスクを与えられた他の自律移動体である。自機である移動ロボット１０２もまた、搬送物９０３を運搬し、目的地で搬送物９０３をコンベア３００に載置するタスクを与えられている。ここで、移動ロボット１０１と移動ロボット１０２とは、異なる計画経路に沿って移動しており、ほぼ同時に目的地に到達しようとしている。そのため、両者は接触する可能性があるという状況である。
【００７１】
このような状況において、制御部２００がステップＳ１０９で移動ロボット１０１と接触する可能性があると判断した場合は、移動ロボット１０２の回避判断部２０１は、移動ロボット１０１を回避するか否かを判断する。この場合に回避判断部２０１は、センサユニット１３０から取得される外観情報（表示パネル１４１の表示およびＬＥＤバー１４２の発光パターン）を認識して移動ロボット１０１の動作状況を把握する。すなわち回避判断部２０１は、センサユニット１３０が取得した移動ロボット１０２の表示パネル１４１の表示やＬＥＤバー１４２の発光パターンを認識し、メモリ２５０に格納されているタスクについての情報と一致するか否かを確認する。
【００７２】
回避判断部２０１は、さらに移動ロボット１０１のタスクと自機のタスクとを比較し、比較結果に応じて移動ロボット１０１を回避するか否かを判断する。例えば、回避判断部２０１は、移動ロボット１０１のＬＥＤバー１４２の発光パターンが自機のタスクよりも優先度の高いタスクを実行中であるか否かを判断する。タスクの優先度は、例えばメモリ２５０にルックアップテーブルとして予め格納されており、回避判断部２０１は、そのテーブルを参照して優先度の高低を確認する。優先度は、例えば、タスクの重要度、タスクの緊急度、与えられたタスクの数、移動ロボットのバッテリー残量、または移動ロボット固有の優先度等により定義されている。
【００７３】
優先度の高低を確認した結果、移動ロボット１０１が自機のタスクよりも優先度の高いタスクを実行中である場合には、移動ロボット１０２の回避判断部２０１は、回避を行うと判断し、制御部２００は、移動ロボット１０１の移動速度であるｖ３１を低下させるように制御を行う。一方、移動ロボット１０１のＬＥＤバー１４２の発光パターンが自機のタスクよりも優先度の高いタスクを実行中であることを示していない場合には、計画経路を進行する。そして、例えば移動ロボット１０１が目的地の手前で停止した場合や、あるいは移動ロボット１０１のＬＥＤバー１４２の発光パターンが移動ロボット１０２のタスクを優先させることを呈示する場合には、回避判断部２０１は、回避動作を行わないと判断する。また、例えば移動ロボット１０１が速度を低下させずに目的地へ進行している場合には、移動ロボット１０２の回避判断部２０１は移動ロボット１０１を回避する。そして、制御部２００は自機の移動速度を低下させ、あるいは自機を一時的に停止させる。
【００７４】
図９は、第３例における待機動作の状況を説明する図である。図９は時刻Ｔ＝３１の後の時刻Ｔ＝ｔ３２の時点における移動ロボットの状況を示している。図において、移動ロボット１０２は、移動ロボット１０１のタスクを優先させるため、移動速度Ｖをｖ３１からｖ３２に低下させ、さらに一時待機位置で停止し、移動ロボット１０１を回避しようとしている。このように判断することにより、移動ロボット１０２は、他の自律移動体と相互通信を行わない状況において、安全性を確保し、且つ、円滑なタスクの実行を可能としている。なお、移動ロボット１０１はＬＥＤバー１４２に代えて表示パネル１４１の表示によりタスクの優先度を呈示してもよい。
【００７５】
図１０は、第４例における回避判断の状況を説明する図である。図１０は、他の自律移動体である移動ロボット１０１が優先度の高いタスクを実行している点において、図３で示した第１例の状況と異なる。図１０は、時刻Ｔ＝ｔ４１において、移動ロボット１０１と移動ロボット１０２とが互いに接近し、両者が接触すると予測される経路を進行している状況である。
【００７６】
移動ロボット１０２が移動ロボット１０１の動作状況を確認する段階において、移動ロボット１０２の制御部２００は、移動ロボット１０１のタスクに関する情報を認識する。図示するように、移動ロボット１０１は、与えられたタスクが例えば所定の棚から救命器具を取ってくるような救急タスクである場合に、表示パネル１４１に救急を示すアイコンを表示し、ＬＥＤバー１４２で救急を表すパターン光を発光する。さらには、頭部１２２を回転させる。
【００７７】
自機である移動ロボット１０２の制御部２００は、このような表示や発光を認識し、移動ロボット１０１が救急タスクを実行していることを認識する。そして、回避判断部２０１は、自機のタスクである搬送物の通常搬送と比較して、救急タスクの優先度が高いことを確認し、回避動作を行うか否かを判断する。
【００７８】
移動ロボット１０２の制御部２００は、回避判断部２０１が移動ロボット１０１を回避すると判断した場合に、移動ロボット１０１のタスクを妨げないように自機の台車駆動ユニット２１０を制御する。すなわち、制御部２００は、回避判断部２０１の判断に応じて、移動ロボット１０１の進行経路から自機を遠ざけるように回避経路を生成し、移動ロボット１０１から予め設定された距離の位置ｗ（すれ違い予定位置）で移動ロボット１０１とすれ違う。
【００７９】
図１１は、第４例におけるすれ違い動作中の状況を説明する図である。図１１は、時刻Ｔ＝ｔ４１の後の時刻Ｔ＝ｔ４２において移動ロボット１０２がすれ違い予定位置へ進行中であることを示している。図に示すように、移動ロボット１０２は、回避動作を行い移動ロボット１０１の進行を妨げないことを表示パネル１４１に表示している。これにより、移動ロボット１０１は、移動ロボット１０２が回避動作を実行していることを認識し、計画されたタスクの実行を継続する。
【００８０】
なお、自機のタスクの方が移動ロボット１０１のタスクよりも優先度が高い場合には、他の動作状況が許容する限り、回避動作を行わず、計画経路を進行する。このような判断および移動制御を行うことにより、たとえそれぞれの移動ロボットが同じシステムの下で制御されていなくても、また、コミュニケーションを取るための通信装置を互いに備えていなくても、これらの移動ロボットは、擬似的な協調動作を行うことができる。
【００８１】
次に、回避判断部２０１が生成する回避経路のバリエーションについて説明する。図１２は、第５例における回避経路を説明する図である。図１２は、他の自律移動体である移動ロボット１０１と自機である移動ロボット１０２とが対向する位置から互いに近づくように移動しているため両者が接触する可能性があると予測される状況である。すなわち、図１２の回避経路は、図３に示した移動ロボット１０２の回避経路のバリエーションを示したものである。このような状況において、回避判断部２０１は、ステップＳ１１０で、移動ロボット１０１を回避するか否かを判断する。そして、移動ロボット１０１を回避する場合には、例えば、制御部２００は、進行経路を計画経路の斜め左前方に変更した回避経路を生成し、これに沿って進むように台車部１１０を制御する。さらに、制御部２００は、すれ違い予定位置である位置Ｐ４の手前の位置Ｐ３で右前方に曲がり、さらに位置Ｐ４で移動ロボット１０１とすれ違うように台車部１１０を制御する。
【００８２】
ここで、制御部２００は、計画経路と回避経路とが成す角度を、自機と他の自律移動体との距離に応じて設定する。例えば、移動ロボット１０１との距離がＤ１である位置Ｐ１を起点とする場合、制御部２００は、計画経路と回避経路とが成す角度を角度Ａ１に設定する。この場合の回避経路を第１回避経路Ｒ１と称する。第１回避経路Ｒ１において、移動ロボット１０２は、起点Ｐ１から角度Ａ１で折れ曲がって位置Ｐ３に進む。
【００８３】
一方、移動ロボット１０１との距離がＤ１より遠いＤ２である位置Ｐ２を起点とする場合、制御部２００は、計画経路と回避経路とが成す角度を角度Ａ１より小さい角度Ａ２に設定する。この場合の回避経路を第２回避経路Ｒ２と称する。第２回避経路Ｒ２において、移動ロボット１０２は、起点Ｐ２から角度Ａ２で折れ曲がって位置Ｐ３に進む。
【００８４】
すなわち、制御部２００は、自機と他の自律移動体との距離が第１距離（Ｄ１）である場合の計画経路と第１回避経路Ｒ１とが成す角度である第１角度（Ａ１）を、第１距離（Ｄ１）より遠い第２距離（Ｄ２）である場合の計画経路と第２回避経路（Ｒ２）とが成す第２角度（Ａ２）より大きく設定する。
【００８５】
このように設定することにより、移動ロボット１０２はよりスムーズな回避経路を生成することができ、効率よく他の自律移動体を回避することができる。なお、以上の説明において第１回避経路と第２回避経路とは、いずれも位置Ｐ３に進み、位置Ｐ３で右前方に曲がるものであった。しかし、第１回避経路と第２回避経路とは、位置Ｐ３で一致しなくともよい。また、上述の例は計画経路から左前方に回避経路が生成されたが、当然ながら右前方に生成されてもよい。
【００８６】
以上、移動ロボット１００により本実施形態を説明したが、本実施形態を実施し得る移動ロボットは、通信装置を備えないものに限らない。例えば、１つの群に属する複数の移動ロボットは、通信装置を使ってコミュニケーションを取ってそれぞれの移動を互いに調整し、群に属さない他の移動ロボットを認識した場合に、上記の制御を行うようにしても良い。あるいは、他の移動ロボットと相互通信が確立されている間は、回避判断部２０１の判断によらず当該相互通信の通信結果に基づいて移動制御を行い、相互通信が確立されていない場合に、回避判断部２０１の判断で移動制御を行うようにしても良い。他の移動ロボットと通信装置を介してコミュニケーションを取る場合は、サーバを介しても良い。その場合、サーバが主体的にコミュニケーションを制御しても構わない。
【符号の説明】
【００８７】
１００、１０１、１０２  移動ロボット、１１０  台車部、１１１  駆動輪、１１２  キャスター、１２０  本体部、１２１  胴部、１２２  頭部、１２３  アーム、１２４  ハンド、１３０  センサユニット、１３１  ステレオカメラ、１３２  レーザスキャナ、１４０  呈示ユニット、１４１  表示パネル、１４２  ＬＥＤバー、１９０  コントロールユニット、２００  制御部、２０１  回避判断部、２１０  台車駆動ユニット、２２０  上体駆動ユニット、２５０  メモリ、２６０  ユーザＩＦ、３００  コンベア、９０１、９０２、９０３  搬送物
【図１】
2019219734.tif 000003
【図２】
2019219734.tif 000004
【図３】
2019219734.tif 000005
【図４】
2019219734.tif 000006
【図５】
2019219734.tif 000007
【図６】
2019219734.tif 000008
【図７】
2019219734.tif 000009
【図８】
2019219734.tif 000010
【図９】
2019219734.tif 000011
【図１０】
2019219734.tif 000012
【図１１】
2019219734.tif 000013
【図１２】
2019219734.tif 000014