(実施形態)
(1)概要
本実施形態に係る地図生成方法、そのプログラム、地図生成方法を実行する地図生成システム、及びそれを備える移動ロボットについて図1~図20に基づいて説明する。以下の実施形態において説明する各図は、模式的な図であり、各図中の各構成要素の大きさ及び厚さそれぞれの比が、必ずしも実際の寸法比を反映しているとは限らない。
図1は、地図生成システム7を備えた移動ロボット3を含むロボットシステム1の概略的なシステム構成図である。ロボットシステム1は、所定の移動領域A1(図2参照)内で移動する移動ロボット3を制御するためのシステムである。ロボットシステム1は、図1に示すように、移動ロボット3と、移動ロボット3を制御する制御システム2と、を含む。
地図生成システム7は、移動ロボット3が移動する移動領域A1の全体地図MP1(図12参照)を生成する。地図生成システム7は、部分地図生成部71と、地図合成部72と、選択部73と、補正部74と、を含む。
部分地図生成部71は、移動領域A1内の複数の部分領域にそれぞれ対応する複数の部分地図MP21~MP28(図3~図10参照)を生成する。
地図合成部72は、複数の部分地図MP21~MP28を合成して全体地図MP1(図12参照)を生成する。
選択部73は、複数の部分地図MP21~MP28から、方向を特定するための方向要素が存在する代表地図を選択する。
補正部74は、代表地図に存在する方向要素に基づいて地図合成部72で生成された全体地図MP1の向きを補正する。
本開示でいう「移動ロボット」は、無人搬送車(AGV:Automated Guided Vehicle)、及びドローン等を含む。本開示でいう「移動ロボット」は、例えば、車輪型、クローラ型又は脚型(歩行型を含む)のロボットである。移動ロボット3は、地図生成システム7によって生成された全体地図MP1のデータを地図生成システム7から取得した後は、例えば、制御システム2から受信した制御指示に基づいて、移動経路に沿って自律的に移動する。つまり、制御システム2は、移動ロボット3に対して制御指示を出力することで、移動ロボット3の移動を間接的に制御している。なお、移動ロボット3は、所定の移動領域A1内を移動するだけでなく、例えば、搬送、ピッキング、溶接、実装、陳列、接客、警備、組立及び検査等の様々な作業を実行する機能を有していてもよい。以下の実施形態では、移動ロボット3が、例えばショッピングモールのような施設内の移動領域A1を移動することによって、対象物を搬送する作業を行うAGVである場合を例に説明する。なお、地図生成システム7によって移動領域A1の全体地図MP1が生成される前の状態では、移動ロボット3は、全体地図MP1のデータを有していない。そのため、移動ロボット3に制御指示を入力するためのコントローラを接続し、ユーザがコントローラを操作して一連の動作を指示する1つ又は複数の制御指示(例えば複数回の直進移動、或いは、複数回の旋回移動を指示する制御指示等)を手動で入力することによって、移動ロボット3に1つ又は複数の制御指示を入力する。移動ロボット3は、コントローラから入力された1つ又は複数の制御指示に基づいて移動領域A1内で一連の動作(一連の直進動作又は一連の旋回動作)を行い、部分地図生成部71は、移動ロボット3が一連の動作を行った領域を含む部分領域の部分地図を生成するのである。なお、コントローラと移動ロボット3との間での通信は有線通信でもよいし、無線通信でもよい。
本開示でいう「移動領域」は、1台以上の移動ロボット3が配備された空間であって、移動ロボット3は、制御システム2からの制御指示を受けて、この移動領域A1内を移動する。移動領域A1は、一例として、店舗(例えばショッピングモール等)、倉庫、工場、建設現場、物流センタ、事務所、公園、住宅、学校、病院、駅、空港又は駐車場等である。さらに、例えば、船舶、電車又は飛行機の内部等、乗り物の内部に移動ロボット3が配備されている場合、乗り物の内部が移動領域A1となる。以下の実施形態では、移動領域A1が、ショッピングモールのような店舗である場合を例に説明を行う。
全体地図MP1は、移動領域A1の全体を表す地図である。なお、移動ロボット3が施設の内部を移動する場合、移動領域A1は施設の内部の全体でもよいし、施設の内部において移動ロボット3が移動する領域のみでもよい。複数の部分地図MP21~MP28は、移動領域A1内の複数の部分領域にそれぞれ対応する地図である。複数の部分地図MP21~MP28がそれぞれ表す複数の部分領域は部分的に重なっていてもよいし、全く重なっていなくてもよい。地図合成部72は複数の部分地図を合成することによって全体地図MP1を生成する。例えば、地図合成部72は、移動領域A1の全体を表す地図領域に、複数の部分地図MP21~MP28を重ねて配置することで、複数の部分地図MP21~MP28を合成した全体地図MP1を生成する。なお、全体地図MP1の大きさは、複数の部分地図MP21~MP28を合成してできる地図の大きさに合わせて設定されるのが好ましい。
「方向要素」とは、代表地図に表示される要素のうち、代表地図の方向を特定可能な要素である。方向要素は、代表地図の方向を特定できるように、ある程度の長さを有する直線部分を有する要素であることが好ましい。方向要素は、例えば移動領域A1に存在する、ある程度の長さを有する壁又はキャビネット等を表す直線要素を含み得る。言い換えると方向要素は、例えば代表地図に存在する長さが第1閾値以上の直線要素を含む。第1閾値は、例えば移動ロボット3の全長の数倍程度の長さであることが好ましく、第1閾値の長さは移動ロボット3の大きさ、移動領域A1の広さ等に応じて適宜変更が可能である。また、方向要素は、例えば、移動領域A1に存在する直線的な通路を表す直線移動領域を含み得る。言い換えると、方向要素は、移動ロボット3が直線移動可能な領域であって、長さが第2閾値以上である直線移動領域を含み得る。直線移動領域の幅は、移動ロボット3の幅以上であればよく、移動ロボット3が対象物を搬送する場合、移動ロボット3及び対象物の最大幅以上であればよい。また、第2閾値は、例えば移動ロボット3の全長の数倍程度の長さであることが好ましく、第2閾値の長さは移動ロボット3の大きさ、移動領域A1の広さ等に応じて適宜変更が可能である。
補正部74は、代表地図に存在する方向要素に基づいて全体地図MP1の向きを補正しており、例えば全体地図MP1に設定される2つの直交軸の一方が、方向要素の向きと平行になるように全体地図MP1の向きを補正できる。これにより、方向要素に沿って移動ロボット3を移動させる場合、全体地図MP1に設定される直交軸に沿って移動ロボット3を移動させればよい。したがって、本実施形態の地図生成システム7では、移動ロボット3が移動する移動ルートの設計が容易な全体地図MP1を生成することができる。
また、本実施形態の移動ロボット3は、上述のように、地図生成システム7を備えている。また、移動ロボット3は、移動体30(図2参照)と、移動制御部37と、測域センサ33と、を備えている。
移動制御部37は、移動体30の移動を制御する。
測域センサ33は、移動体30の周囲に存在する対象物(例えば移動領域A1である部屋の壁等)を検出する。
移動ロボット3は地図生成システム7を備えているので、移動ロボット3が備える地図生成システム7によって、移動ロボット3が移動する移動ルートの設計が容易な全体地図MP1を生成することができる。
(2)詳細
以下、本実施形態に係る地図生成方法を実行する地図生成システム7、及びそれを備える移動ロボット3、並びに、移動ロボット3を含むロボットシステム1について図1~図20に基づいて説明する。
上述のように、ロボットシステム1は、移動ロボット3と、移動ロボット3の移動を制御する制御システム2と、を備える。また、ロボットシステム1は、移動領域A1において移動ロボット3が移動可能な経路を設定するためのアプリケーションソフトがインストールされた作成支援システム4を更に備える。また、ロボットシステム1は、移動ロボット3の動作状態をモニタしたり、移動ロボット3に対する移動の指示を制御システム2に入力したりするためのアプリケーションソフトがインストールされた操作用端末5,6を更に備える。操作用端末5は、例えば、ノート型のパーソナルコンピュータであり、操作用端末6は、例えば、タブレット型のコンピュータである。なお、移動領域A1には、移動ロボット3と制御システム2との間の通信を中継する1又は複数の無線アクセスポイントAP1が設置されている。
(2.1)移動ロボット
移動ロボット3は、上述のように、移動体30と、移動制御部37と、測域センサ33と、地図生成システム7と、を備えている。また、移動ロボット3は、移動制御部37及び地図生成システム7の機能を有する第2制御部36と、第2通信部31と、第2記憶部32と、位置推定部34と、走行システム35と、を備える。
移動ロボット3は、例えば、移動領域A1となる施設の床面を車輪で走行するロボットである。走行システム35は、複数の駆動輪の回転方向及び回転速度を制御することによって、移動領域A1となる施設の床面の上を所望の方向に所望の速度で走行させる。
第2通信部31は、制御システム2と無線通信を行う。具体的には、第2通信部31は、無線アクセスポイントAP1及びネットワークNT1を介して、制御システム2等と通信する。第2通信部31と無線アクセスポイントAP1との間の通信方式としては、無線通信又は有線通信の適宜の通信方式が採用される。
第2記憶部32は、RAM(Random Access Memory)及びROM(Read Only Memory)の少なくとも一方のメモリを有する。第2記憶部32は、地図生成システム7が作成した複数の部分地図及び移動領域A1の全体の全体地図MP1を含む地図情報を少なくとも記憶する。また、第2記憶部32は、移動ロボット3に割り当てられた識別情報等を更に記憶する。
測域センサ33は、測域センサ33を中心とする測定範囲内に存在する対象物を検知する。測域センサ33は、例えば、LiDAR(Light Detection and Ranging)のようなセンサを含む。LiDARは、光(レーザ光)を周囲に照射して、移動ロボット3の周囲に存在する物体での反射光に基づいて物体までの距離及び物体の方向を測定する。なお、測域センサ33は、LiDARに限定されず、レーダ(RADAR:Radio Detection and Ranging)、ソナーセンサ、及びイメージセンサ(カメラ)等のセンサを含んでもよい。レーダは、マイクロ波等の電磁波(電波)を用いて、移動ロボット3の周囲に存在する物体での反射波に基づいて物体までの距離及び物体の方向を測定するセンサである。
位置推定部34は、地図生成システム7によって全体地図MP1が生成された状態では、第2記憶部32が保持する全体地図MP1に基づいて、移動領域A1における移動ロボット3の位置(現在位置)を推定する。位置推定部34は、例えば、測域センサ33による周囲の物体(例えば移動領域A1に存在する壁、棚、設備等)の検出情報と、全体地図MP1とに基づいて、移動領域A1における現在位置の位置座標を推定する。なお、位置推定部34は、全体地図MP1が生成されておらず、部分地図生成部71が部分地図を生成している状態では、生成途中の部分地図に基づいて、移動ロボット3の位置(現在位置)を推定する。
なお、位置推定部34は、電波ビーコンを用いたLPS(Local Positioning System)を利用して、移動領域A1における移動ロボット3の現在位置の位置座標を推定してもよい。位置推定部34は、例えば、移動領域A1の上方(施設の天井等)に設置された複数の送信機からそれぞれ送信されるビーコン信号を、移動ロボット3に設けられた受信機で受信したときの電波強度と、各送信機の設置位置とに基づいて現在位置を推定してもよい。また、位置推定部34は、例えば、GPS(Global Positioning System)等の全球衛星測位システム(GNSS:Global Navigation Satellite System)を利用して、移動ロボット3の現在位置の位置座標を推定してもよい。
第2制御部36は、移動ロボット3の全体的な動作を制御する。第2制御部36は、例えば、1以上のプロセッサ及びメモリを有するコンピュータシステムを主構成とする。コンピュータシステムのメモリに記録されたプログラムを、コンピュータシステムのプロセッサが実行することにより、第2制御部36の機能、例えば移動制御部37及び地図生成システム7の機能が実現される。プログラムは、メモリに記録されていてもよいし、インターネット等の電気通信回線を通して提供されてもよく、メモリカード等の非一時的記録媒体に記録されて提供されてもよい。
第2制御部36は、所定の更新周期(例えば0.1秒)が経過するごとに、位置推定部34に現在位置を推定する動作を行わせ、移動ロボット3の現在位置の推定結果を更新する。そして、第2制御部36は、現在位置の推定結果を移動ロボット3の識別情報とともに第2通信部31から移動ロボット3に送信させる。
移動制御部37は、地図生成システム7によって生成された全体地図MP1のデータを地図生成システム7から取得した状態では、例えば、第2通信部31が受信した制御システム2からの制御指示に基づいて移動ロボット3を移動させる。制御システム2からの制御指示には、移動ロボット3を第1地点から第2地点まで移動させる移動経路に関する情報が含まれており、例えば第1地点に対応するノード、第2地点に対応するノードの座標等が含まれている。なお、制御指示には、第1地点から第2地点に到達するまでの間に移動ロボット3が通過する1又は複数の第3地点に対応するノードの座標等が含まれていてもよい。
移動制御部37は、制御システム2からの制御指示を受信すると、位置推定部34が推定した位置(現在位置)と、移動領域A1の地図情報と、制御指示とに基づいて走行システム35を制御し、移動ロボット3を移動経路に沿って移動させる。
地図生成システム7は、上述のように、部分地図生成部71と、地図合成部72と、選択部73と、補正部74と、を備えている。地図生成システム7は、ノイズ除去部75を更に備えている。
地図生成システム7は、移動領域A1の全体を表す全体地図MP1を生成するためのシステムである。全体地図MP1を生成する場合、移動ロボット3に移動領域A1内を巡回させ、巡回中に測域センサ33が検知した物体の情報に基づいて地図生成システム7が移動領域A1の全体地図MP1を生成する。
ここで、全体地図MP1を生成するために移動ロボット3が移動領域A1内を巡回する巡回ルートは、移動ロボット3が一連の動作をそれぞれ行う複数の区間に分割される。一連の動作とは、移動ロボット3が一方向に直進する一連の直進動作と、移動ロボット3が一方向に旋回する一連の旋回動作とを含む。したがって、複数の区間は、一連の直進動作を行う1又は複数の直進区間と、一連の旋回動作を行う1又は複数の旋回区間とを含む。ここにおいて、「一連の直進動作」は、移動ロボット3が真っ直ぐに前進する動作に限定されず、移動ロボット3が直進する動作と、所定の許容角度以下で旋回する動作と、を含んでもよい。すなわち、一連の直進動作は、移動ロボット3が直進する方向と直交する方向において所定の許容範囲内で、横方向に移動しながら前進するような動作を含んでもよい。また、「一連の旋回動作」は、直進動作を含まずに、その場で旋回(信地旋回)する動作を含む。「一連の旋回動作」は、1回の旋回動作、又は、連続的に行う複数回の旋回動作を含み、合計の旋回角度が許容角度を超えるような旋回動作である。
図2は全体地図を作成するために移動ロボット3が巡回する巡回ルートの一例を複数の矢印で示している。図2に示す巡回ルートは、例えば7つの直進区間(第1~第7直進区間M1~M7)と、例えば6つの旋回区間(第1~第6旋回区間R1~R6)とを含んでいる。
部分地図生成部71は、移動領域A1内の複数の部分領域にそれぞれ対応する複数の部分地図MP21~MP28(図3~図10参照)を生成する。部分地図生成部71は、複数の部分領域のうち作成対象の部分領域を移動ロボット3が移動する間に、移動ロボット3が備える測域センサ33が測定範囲内に存在する対象物の位置を測定することによって、作成対象の部分領域に対応する部分地図を生成する。
本実施形態では、移動ロボット3が、巡回ルートを巡回する間に、一連の直進動作又は一連の旋回動作を行うごとに、測域センサ33によって測定された対象物の位置に基づいて部分地図を作成する。より具体的には、移動ロボット3は、例えばユーザがコントローラを用いて手動で入力した制御指示に基づいて一連の動作(一連の直進動作、又は、一連の旋回動作)を実行する。移動ロボット3が制御指示に基づく一連の動作を終了すると、ユーザは移動ロボット3に対して次の制御指示を手動で入力し、移動ロボット3に制御指示に基づく一連の動作を実行させる。このように、移動ロボット3に対してユーザが複数の制御指示を順番に入力することで、移動ロボット3が複数の制御指示に基づく複数の動作を順番に実行し、巡回ルートにしたがって移動する。
ここで、部分地図生成部71は、移動ロボット3が制御指示に基づく一連の動作(例えば、一連の直進動作、又は、一連の旋回動作)を行うごとに、一連の動作を行う間に移動した部分領域の部分地図を生成する。言い換えると、移動ロボット3に入力する制御指示、又は、移動ロボット3が実行する制御指示が切り替わるタイミングで、部分地図生成部71は、移動ロボット3が制御指示に基づく一連の動作を行う間に移動した部分領域の部分地図を生成するのである。したがって、図2に示すような巡回ルートを移動ロボット3が移動(直進移動又は旋回移動)する場合、移動ロボット3が第1~第7直進区間M1~M7及び第1~第6旋回区間R1~R6をそれぞれ移動するごとに、部分地図生成部71が部分地図を生成する。ここで、部分地図のサイズは、移動ロボット3が移動(直進移動又は旋回移動)する間に測定が可能な領域の大きさとなる。したがって、複数の区間(第1~第7直進区間M1~M7、第1~第6旋回区間R1~R6)を移動ロボット3が移動する間にそれぞれ作成される複数の部分地図のサイズは、各区間での移動量(移動距離又は移動角度)に応じたサイズとなる。また、複数の区間の各々を移動ロボット3が移動することによって生成される部分地図が表す領域が部分領域となる。なお、複数の区間のうち、隣接する2つの区間に対応する2つの部分領域は部分的に重なっているが、別々の領域であってもよい。
地図合成部72は、複数の部分地図を合成して全体地図MP1を生成する。具体的には、地図合成部72は、巡回ルートに含まれる複数の区間を移動ロボット3が走行して生成した複数の部分地図(例えば部分地図MP21~MP28)を、移動領域A1の全体を表す地図領域に重ね合わせることで全体地図MP1を生成する。図11では、説明の便宜上、複数の部分地図MP21~MP28の枠をそれぞれ一点鎖線で表示してあるが、地図合成部72によって生成される全体地図MP1は、図12に示すように複数の部分地図MP21~MP28の枠がない地図となる。なお、図11及び図12には、全体地図MP1内に設定される2つの直交軸(X軸及びY軸)を表す矢印を表示しているが、X軸及びY軸を表す矢印は説明の便宜上表示しているに過ぎず、実際には存在しない。
選択部73は、部分地図生成部71が生成した複数の部分地図MP21~MP28の中から、方向を特定するための方向要素(例えば直線要素、直線移動領域等)が存在する代表地図を選択する。例えば部屋の内部を表す地図の方向は、部屋の壁、部屋内に存在するキャビネット、又は、部屋内で移動ロボット3が直進可能な通路の方向によって特定することができる。したがって、選択部73は、複数の部分地図MP21~MP28から、壁又はキャビネット等の直線要素、及び、移動ロボット3が直進可能な通路等を表す直線移動領域の少なくとも一方を含む方向要素が存在する部分地図を、代表地図として選択することが好ましい。
本発明者らは、移動ロボット3が直進移動する距離が長い直進区間の部分地図には、直進移動する距離が短い直進区間の部分地図に比べて、直線要素、又は、直線移動領域等の方向要素が存在する可能性が高いと推定した。そこで、選択部73は、部分地図を生成する部分地図生成工程において、地図生成のために移動ロボットが直線移動した移動距離が最も長い部分領域の部分地図を代表地図として選択する。なお、選択部73が選択した代表地図に方向要素が検出できなかった場合、選択部73は、直線移動する距離が次に長い直進区間を移動ロボット3が移動する間に生成した部分地図を代表地図として選択すればよい。補正部74は、選択部73が選択した代表地図から方向要素を検出して全体地図MP1の方向を補正しており、複数の部分地図MP21~MP28の全てについて方向要素を検出する処理を行う場合に比べて、方向要素を検出するための処理を低減できる。
また、選択部73は、直線移動する移動距離が第3閾値以上である2以上の直進区間を移動ロボット3が移動する間に生成した2以上の部分地図を選択し、補正部74が、2以上の部分地図から方向要素を検出して補正処理を行ってもよい。言い換えると、選択部73は、部分地図生成工程において、地図生成のために移動ロボット3が直線移動した移動距離が第3閾値以上である2以上の部分地図を代表地図として順番に選択すればよい。そして、補正部74は、代表地図として選択された2以上の部分地図に存在する方向要素に基づいて地図合成部72で生成された全体地図MP1の向きを補正すればよい。ここで、第3閾値は、所定の長さの距離(絶対値)として設定されてもよいし、直進移動する距離が最も長い区間での直進移動距離に対する相対値(例えば90%の値)として設定されてもよい。選択部73は、2以上の部分地図の中から所定の順番にしたがって1つの部分地図を代表地図として選択する。代表地図を選択する順番は、例えば直線移動する移動距離が長い順番である。補正部74が、代表地図として選択された部分地図から方向要素を検出すると、選択部73は代表地図を切り替える処理を終了し、補正部74は、方向要素に基づいて全体地図MP1の向きを補正する。このように、移動距離が第3閾値以上である2以上の部分地図から方向要素を検出することで、複数の部分地図の全てから方向要素を検出する処理を行う場合に比べて、方向要素を検出する処理を低減できる。
補正部74は、選択部73が選択した代表地図に存在する方向要素に基づいて、地図合成部72で生成された全体地図MP1の向きを補正する。全体地図MP1には、移動ロボット3の位置を特定するために、2つの直交軸(X軸及びY軸)で作られる二次元直交座標系が設定されている。全体地図MP1は例えば横長の矩形の地図であり、全体地図MP1の長手方向をX軸方向とし、全体地図MP1の短手方向をY軸方向としている。補正部74は、方向要素の向きが、X軸方向又はY軸方向と平行になるように、全体地図MP1の向きを補正する。換言すると、補正部74は、方向要素の向きが全体地図MP1のX軸方向又はY軸方向と平行になるように、全体地図MP1に表示される全ての要素の向きを補正する。
なお、補正部74は、代表地図に存在する方向要素に基づいて、合成前の複数の部分地図MP21~MP28の向きを補正してもよい。つまり、補正部74は、向きを補正した後の複数の部分地図MP21~MP28を地図合成部72で合成させることによって、向きが補正された全体地図MP1を生成してもよい。ここで、複数の部分地図MP21~MP28の各々で方向要素を検出可能であれば、補正部74は、複数の部分地図MP21~MP28の各々で検出された方向要素に基づいて、複数の部分地図MP21~MP28の各々の向きを補正してもよい。そして、地図合成部72は、補正部74によって向きが補正された後の複数の部分地図MP21~MP28を合成して全体地図MP1を生成すればよい。
ノイズ除去部75は、複数の部分地図MP21~MP28及び全体地図MP1の少なくとも一方において、部分地図生成工程で地図生成のために移動ロボット3が移動した移動ルート上に位置する物体を除去するノイズ除去工程を実行する。部分地図MP21~MP28を生成する場合に、移動ロボット3の移動ルート(上記の巡回ルート)上に移動ロボット3が通る前又は移動ロボット3が通った後に人或いは物等が存在すると、移動ルート上に物体が存在するような部分地図が生成される可能性がある。移動ルート上に物体が存在すると、この移動ルートを移動ロボット3が移動する経路として利用できなくなる。しかしながら、移動ルートは、部分地図MP21~MP28を生成するために移動ロボット3が移動したルートであるから、移動ロボット3が問題無く通行可能なルートであると考えられる。そこで、ノイズ除去部75は、複数の部分地図MP21~MP28において、移動ルート上に位置する物体を地図上で除去しており、移動ロボット3の移動の障害となる物体が移動ルート上に存在しないような部分地図MP21~MP28を生成できる。なお、ノイズ除去部75は、地図合成部72が合成した後の全体地図MP1において、移動ルート上に位置する物体を地図上で除去してもよく、移動ロボット3の移動の障害となる物体が移動ルート上に存在しないような全体地図MP1を生成できる。
(2.2)作成支援システム
作成支援システム4は、例えば、コンピュータシステムにより実現されている。作成支援システム4は、移動ロボット3が作成した全体地図MP1のデータを、例えば制御システム2を介して取得する。作成支援システム4は、移動領域A1内で移動ロボット3が移動可能な経路を全体地図MP1上に設定した地図情報を作成する作業を支援する。作成支援システム4が作成した地図情報は、制御システム2及び移動ロボット3によって保持される。制御システム2は、この地図情報に基づいて移動ロボット3の移動を制御する。なお、作成支援システム4は施設の内部にあってもよいし、施設の外部にあってもよい。
作成支援システム4は、第3通信部41と、第3記憶部42と、UI部43と、経路作成部44と、を備える。
第3通信部41は、ネットワークNT1を介して、制御システム2等と通信する。第3通信部41と制御システム2との間の通信方式としては、無線通信又は有線通信の適宜の通信方式が採用される。
第3記憶部42は、RAM及びROMの少なくとも一方のメモリを有する。第3記憶部42は、移動ロボット3が作成した全体地図MP1、及び、経路作成部44が作成した地図情報等を記憶する。
UI部43は、ユーザの操作を受け付ける入力部(例えばキーボード、マウス、ポインティングデバイス、タッチパネル等)と、地図情報を作成するための画面等を表示するディスプレイ装置と、を有する。UI部43は、ユーザが入力部を用いて入力した情報を経路作成部44に出力する。
経路作成部44は、移動ロボット3が作成した全体地図MP1と、UI部43から入力される移動ロボット3が移動可能な経路の情報とに基づいて、地図情報を作成する。ユーザは、UI部43を用いて、全体地図MP1上で移動ロボット3が移動可能な複数のノードと、任意の2つのノードの間で移動ロボット3が移動可能な区間を示す1又は複数のリンクと、を設定する。ここにおいて、移動ロボット3が移動可能な経路は、複数のノードと、任意の2つのノードの間をつなぐ1又は複数のリンクとで構成される。経路作成部44は、UI部43からノード及びリンクの設定情報が入力されると、全体地図MP1に、移動ロボット3が移動可能な経路に関する設定情報を付加した地図情報を作成する。
経路作成部44は、地図情報の作成作業が終了すると、作成した地図情報のデータを第3記憶部42に記憶させ、第3通信部41から制御システム2に送信させる。制御システム2は、作成支援システム4から受信した地図情報のデータを第1記憶部22に記憶する。
(2.3)制御システム
制御システム2は、例えば、コンピュータシステムにより実現されている。制御システム2は、移動ロボット3を移動させる指示、及び、移動ロボット3に対象物を搬送させる指示の少なくとも一方を含む制御指示を出力する。この制御システム2は、移動領域A1が含む施設の内部にあってもよいし、施設の外部にあってもよい。
制御システム2は、第1通信部21と、第1記憶部22と、経路探索部23と、第1制御部24と、を備える。
第1通信部21は、ネットワークNT1及び無線アクセスポイントAP1を介して、移動ロボット3と通信する。また、第1通信部21は、ネットワークNT1を介して、作成支援システム4及び操作用端末5,6と通信する。なお、第1通信部21は、ネットワークNT1及び無線アクセスポイントAP1を介して、操作用端末5,6と通信してもよい。無線アクセスポイントAP1、作成支援システム4、及び操作用端末5,6と、第1通信部21との間の通信方式としては、無線通信又は有線通信の適宜の通信方式が採用される。
第1記憶部22は、RAM及びROMの少なくとも一方のメモリを有する。第1記憶部22は、移動領域A1の地図に関する第1地図情報、及び、経路探索部23によって探索された移動ロボット3の移動経路を示す経路情報、等を記憶する。
経路探索部23は、第1地図情報と、移動ロボット3から受信した移動ロボット3の現在位置に関する現在位置情報と、操作用端末5又は6から受信した搬送指示情報とに基づいて、移動ロボット3が移動する移動経路を探索する。経路探索部23は、第1地図情報と搬送指示情報とに基づいて、例えば移動ロボット3を現在位置から対象物の存在位置まで移動させた後、対象物を搬送して搬送先の位置まで移動する移動経路を探索する。
なお、経路探索部23は、第1地図情報に設定された複数のノードの中から、出発地点となる第1ノード及び到着地点となる第2ノードが指定されると、第1ノードから第2ノードに到着する移動経路を探索する。ここで、経路探索部23は、第1ノードと第2ノードとの間を移動ロボット3が移動する移動距離又は移動時間がより短くなるようなルートを移動経路として探索すればよい。
また、経路探索部23は、第1地図情報に設定された複数のノードの中から、出発地点となる第1ノード、中継地点となる第3ノード、及び到着地点となる第2ノードが指定されると、第1ノードから第3ノードを通って第2ノードに到着する移動経路を探索する。ここで、経路探索部23は、第1ノードと第3ノードとの間を移動ロボット3が移動する移動距離又は移動時間がより短くなり、第3ノードと第2ノードとの間を移動ロボット3が移動する移動距離又は移動時間がより短くなるようなルートを移動経路として探索すればよい。
第1制御部24は、移動ロボット3から受信した現在位置情報と、操作用端末5又は6から受信した搬送指示と、第1地図情報とに基づいて移動ロボット3の移動経路を経路探索部23に探索させる。第1制御部24は、経路探索部23が探索した経路情報に基づいて、移動ロボット3を移動経路に沿って移動させる制御指示を作成し、制御指示を第1通信部21から移動ロボット3に送信させる。
(2.4)操作用端末
操作用端末5,6は、例えば、コンピュータシステムにより実現されている。操作用端末5,6は、例えば、対象物の搬送を指示する搬送指示を制御システム2に入力するために用いられる。
操作用端末5又は6は、ユーザの操作を受け付けるUI部と、ネットワークNT1等を介して制御システム2と通信する第4通信部と、を備えている。なお、第4通信部は、無線アクセスポイントAP1及びネットワークNT1等を介して制御システム2と通信してもよい。
ユーザが例えば操作用端末5のUI部を用いて移動領域A1内にある対象物を所望の搬送先に搬送する搬送指示を入力すると、操作用端末5は、ユーザが入力した搬送指示に基づく搬送指示情報を、ネットワークNT1等を介して制御システム2に送信する。搬送指示情報は、例えば、搬送対象の対象物に関する情報と、対象物の存在位置に関する情報と、対象物の搬送先の位置に関する情報と、を少なくとも含む。
(3)動作説明
本実施形態の地図生成システム7の動作を図2~図20に基づいて説明する。なお、図20に示すフローチャートは、本実施形態に係る地図生成方法の一例に過ぎず、処理の順序が適宜変更されてもよいし、処理が適宜追加又は省略されてもよい。
地図生成システム7により移動領域A1の全体地図MP1を生成させる場合、移動ロボット3は、例えば制御システム2からの制御指示に基づいて、移動領域A1を巡回する巡回コース(図2に矢印で示す経路)に沿って移動し、部分地図生成部71が部分地図を生成する。ここで、図2に示す巡回コースは、複数の部分領域にそれぞれ対応する複数の区間を含んでいる。複数の区間は、移動ロボット3が直進移動する複数の直進区間M1~M7と、移動ロボット3が旋回移動する複数の旋回区間R1~R6と、を含んでる。
ユーザは、移動ロボット3を巡回コースに沿って移動させるために、各区間の出発地点に移動ロボット3が存在する状態で、コントローラを操作して各区間を移動させるための制御指示を入力する。
移動ロボット3が、コントローラから入力された制御指示に基づいて、ある区間を移動すると(ステップS1)、移動中に測域センサ33が測定した測定結果に基づいて、部分地図生成部71が当該区間を含む部分領域を表わす部分地図を生成する(ステップS2)。
ここで、図2に示す巡回コースを移動ロボット3が移動することによって生成される複数の部分地図について図3~図10を参照して説明する。
まず、移動ロボット3は、巡回コースの出発地点である点P1から任意の向きに10m直進して点P2まで移動する。点P1から点P2までの区間を第1直進区間M1という。部分地図生成部71は、第1直進区間M1に対応する部分領域の部分地図MP21(図3参照)を生成する。全体地図MP1の生成を開始した時点では、部分地図MP21の座標系は定まっていない。そこで、部分地図生成部71は、出発地点である点P1の座標を(0,0)、第1直進区間M1において移動ロボット3が前進する方向をX軸方向、X軸方向と直交する方向をY軸方向と仮決めして部分地図MP21を作成する。なお、第1直進区間M1において、移動ロボット3が前進する方向をX軸方向の負の向き、移動ロボット3から見て右方向をY軸方向の正の向きと仮決めする。第1直進区間M1では移動ロボット3が10m前進するので、点P2の座標は(-10,0)となる。
移動ロボット3は、点P2を中心に時計回りに90度旋回する。点P2を中心に旋回移動する区間を第1旋回区間R1という。部分地図生成部71は、第1旋回区間R1に対応する部分領域の部分地図MP22(図4参照)を生成する。
移動ロボット3は、点P2からY軸方向の正の向きに1m直進して点P3(-10,1)に移動する。点P2から点P3までの区間を第2直進区間M2という。部分地図生成部71は、第2直進区間M2に対応する部分領域の部分地図MP23(図5参照)を生成する。
移動ロボット3は、点P3を中心に反時計回りに90度旋回する。点P3を中心に旋回移動する区間を第2旋回区間R2という。部分地図生成部71は、点P3の周りの第2旋回区間R2に対応する部分領域の部分地図を生成する。なお、第2旋回区間R2以降の旋回区間で生成される部分地図については図示を省略している。
移動ロボット3は、点P3からX軸方向の負の向きに3m直進して点P4(-13,1)まで移動する。点P3から点P4までの区間を第3直進区間M3という。部分地図生成部71は、第3直進区間M3に対応する部分領域の部分地図MP24(図6参照)を生成する。
移動ロボット3は、点P4を中心に時計回りに90度旋回する。点P4を中心に旋回移動する区間を第3旋回区間R3という。部分地図生成部71は、点P4の周りの第3旋回区間R3に対応する部分領域の部分地図を生成する。
移動ロボット3は、点P4からY軸方向の正の向きに7m直進して点P5(-13,8)まで移動する。点P4から点P5までの区間を第4直進区間M4という。部分地図生成部71は、第4直進区間M4に対応する部分領域の部分地図MP25(図7参照)を生成する。なお、第4直進区間M4には障害物が存在するため、移動ロボット3は、点P4から点P5まで真っ直ぐに移動することはできず、点P4から点P5まで、直進動作と所定の許容角度以下の旋回動作とを含む一連の直進動作を行って直進移動している。
移動ロボット3は、点P5を中心に時計回りに約45度旋回する。点P5を中心に旋回移動する区間を第4旋回区間R4という。部分地図生成部71は、点P5の周りの第4旋回区間R4に対応する部分領域の部分地図を生成する。
移動ロボット3は、点P5からX軸方向の正の向きに5m直進して点P6(-8,8)まで移動する。点P5から点P6までの区間を第5直進区間M5という。部分地図生成部71は、第5直進区間M5に対応する部分領域の部分地図MP26(図8参照)を生成する。
移動ロボット3は、点P6を中心に時計回りに約90度旋回する。点P6を中心に旋回移動する区間を第5旋回区間R5という。部分地図生成部71は、点P6の周りの第5旋回区間R5に対応する部分領域の部分地図を生成する。
移動ロボット3は、点P6からY軸方向の負の向きに8m直進して点P7(0,8)まで移動する。点P6から点P7までの区間を第6直進区間M6という。部分地図生成部71は、第6直進区間M6に対応する部分領域の部分地図MP27(図9参照)を生成する。
移動ロボット3は、点P7を中心に反時計回りに約90度旋回する。点P7を中心に旋回移動する区間を第6旋回区間R6という。部分地図生成部71は、点P7の周りの第6旋回区間R6に対応する部分領域の部分地図を生成する。
移動ロボット3は、点P7からX軸方向の正の向きに8m直進して点P8(0,0)まで移動する。点P8は出発地点P1と同じ点である。点P7から点P8(点P1)までの区間を第7直進区間M7という。部分地図生成部71は、第7直進区間M7に対応する部分領域の部分地図MP28(図10参照)を生成する。
移動ロボット3が巡回ルートの移動を終了すると、巡回ルートに含まれる複数の区間(つまり複数の部分領域)の全てで部分地図の生成が完了する。部分地図生成部71が全ての部分地図の生成を完了する、又は、移動ロボット3が全ての部分領域の走行を完了すると(ステップS3:Yes)、選択部73は、複数の部分地図から代表地図を選択する(ステップS4)。例えば、選択部73は、複数の部分地図のうち、移動ロボット3が直進移動する距離が最も長い部分領域に対応する部分地図を代表地図として選択する。下記の表1は、第1~第7直進区間M1~M7においてそれぞれ生成される部分地図MP21,MP23~MP28と、第1~第7直進区間M1~M7での直進移動の距離との関係を示している。表1の例では、選択部73は、移動ロボット3が直進移動する距離が最も長い部分地図MP21を、代表地図として選択する。
代表地図が選択されると、補正部74は、代表地図から方向要素(直線要素又は直線移動領域)を検出する処理を行う。まず、補正部74は、代表地図として選択された部分地図MP21に直線要素が存在する否かを判定する(ステップS5)。補正部74は、代表地図から一方向に伸びる直線要素を検出する処理を行い、検出した直線要素の長さが第1閾値以上であるか否かを判定する。補正部74は、代表地図に長さが第1閾値以上の直線要素が存在する場合(ステップS5:Yes)、長さが第1閾値以上の直線要素を直線要素として検出し、直線要素とX軸とが交差する角度を推定する(ステップS6)。
一方、代表地図に長さが第1閾値以上の直線要素が存在しない場合(ステップS5:No)、補正部74は、代表地図として選択された部分地図MP21に直線移動領域が存在する否かを判定する(ステップS7)。
図14は直線移動領域DE2が存在する部分地図MP30の一例を示しており、この部分地図M30を例に直線移動領域DE2を検出する処理について説明する。
補正部74は、図15に示すように、部分地図M30の空白部分に、複数本の線分L1,L2がX軸方向と平行に等間隔に並ぶように描画する。ここで、実線の線分L1は長さが第2閾値以上の線分であり、点線の線分L2は長さが第2閾値未満の線分である。図15の例では長さが第2閾値以上の線分L1は1本である。
補正部74は、部分地図M30の空白部分に、複数本の線分L1,L2とX軸方向(X軸方向と平行な線分L4)との交差角θ1を所定の角度ずつ(例えば1度ずつ)増やして、複数本の線分L1,L2を描画する。図16は交差角θ1が1度の場合の複数本の線分L1,L2の描画例、図17は交差角θ1が3度の場合の複数本の線分L1,L2の描画例、図18は交差角θ1が5度の場合の複数本の線分L1,L2の描画例をそれぞれ示している。ここで、補正部74は、長さが第2閾値以上である線分L1の本数が最大となるときに、複数本の線分L1が配置される領域を直線移動領域DE2として検出する。言い換えると、補正部74は、長さが第2閾値以上である複数本の線分L1を等間隔に平行配置したときに線分L1の本数が最大となる領域を直線移動領域DE2として検出する。図16~図18に示す例では、交差角θ1が3度となるように複数本の線分L1,L2を描画した場合に、線分L1の本数が最大の7本となる。したがって、補正部74は、交差角θ1が3度である場合に、複数本の線分L1が等間隔に7本平行配置された領域を直線移動領域DE2として検出する(ステップS7:Yes)。また、補正部74は、線分L1の本数が最大となるときの交差角θ1を、直線移動領域DE2とX軸とが交差する角度として推定する(ステップS8)。
一方、代表地図に直線移動領域が存在しない場合(ステップS7:No)、選択部73は、代表地図として選択されていない1又は複数の部分地図から新たな代表地図を選択する(ステップS9)。そして、補正部74は、ステップS5に戻り、新たな代表地図から方向要素(直線要素又は直線移動領域)を検出する処理を行う。
補正部74が代表地図から方向要素を検出して、方向要素の角度を推定すると(ステップS6,S8)、地図合成部72は、複数の部分画像を合成して全体地図MP1(図11、図12参照)を生成する(ステップS10)。
その後、補正部74が、代表地図から検出した方向要素の向きに基づいて、全体地図MP1の向きを補正する(ステップS11)。図3は代表地図として検出された部分地図MP21の一例であり、図3の例では部分地図MP21に存在する直線要素DE1の向きはX軸方向と平行であるので、補正部74は、全体地図MP1の向きの補正は行わない。一方、図13に示すように、部分地図MP21に存在する直線要素DE1と、X軸に平行な線分L3との交差角がθ2である場合、補正部74は、全体地図MP1を角度(―θ2)だけ回転させることによって、全体地図MP1の向きを補正する。向きが補正された全体地図MP1では、直線要素DE1が表わす部屋の壁などがX軸方向に対して平行になる。
また、図17に示すように、部分地図MP30に存在する直線移動領域と、X軸に平行な線分L4との交差角がθ1である場合、補正部74は、全体地図MP1を角度(―θ1)だけ回転させることによって、全体地図MP1の向きを補正する。図19は、部分地図MP30を角度(―θ1)だけ回転させた状態を示しており、向きが補正された部分地図MP30では、直線移動領域の延びる方向がX軸方向に対して平行になる。
このように、補正部74が、方向要素(直線要素又は直線移動領域)の向きに基づいて、全体地図MP1の向きを補正することで、方向要素の向きがX軸方向及びY軸方向のいずれかと平行になるような全体地図MP1を生成できる。すなわち、全体地図MP1において、方向要素である直線要素が表わす壁又はキャビネット、或いは、直線移動領域が表わす直線的な通路が、X軸方向及びY軸方向のいずれかと平行に配置される。
例えば、方向要素が表わす壁がX軸方向と平行になるように全体地図MP1が生成されている場合、制御システム2は、移動ロボット3を壁と平行に移動させるのであれば、座標(X1,Y1)から座標(X2,Y1)に移動させる制御指示を移動ロボット3に与えればよい。また、制御システム2は、移動ロボット3を壁と直交する方向に移動させるのであれば、座標(X1,Y1)から座標(X1,Y2)に移動させる制御指示を移動ロボット3に与えればよい。よって、移動ロボット3に対して、X座標及びY座標の一方を変化させるような制御指示を与えればよいから、移動先の座標の指定が容易になり、移動ロボット3が移動する移動ルートの設計が容易な地図を生成することができる。
ステップS11の補正処理が終了すると、ノイズ除去部75が、全体地図MP1において、部分地図生成工程(ステップS2)で地図生成のために移動ロボット3が移動した移動ルート(上述の巡回ルート)上に位置する物体を除去するノイズ除去工程を行う(ステップS12)。部分地図には、移動ロボット3が通過する前、又は、移動ロボット3が通過した後に移動ルート上に一時的に存在する人又は物体が表示される可能性があるが、移動ルートは移動ロボット3が通行した実績のあるルートである。したがって、ノイズ除去部75が、全体地図MP1において移動ルート(上述の巡回ルート)上に位置する物体を除去することで、制御システム2は、移動ルートを移動ロボット3が移動可能な経路として使用できる。なお、ノイズ除去部75は、複数の部分地図において、移動ルート上に位置する物体を除去するノイズ除去工程を行ってもよく、ノイズ除去後の部分地図を合成して全体地図MP1を生成してもよい。
なお、図20のフローチャートでは、地図生成システム7は、代表地図から直線要素を検出し、直線要素を検出できなかった場合に直線移動領域を検出しているが、検出の順番は逆でもよい。すなわち、地図生成システム7は、代表地図から直線移動領域を検出し、直線移動領域を検出できなかった場合に直線要素を検出してもよい。また、地図生成システム7は、代表地図から直線要素を検出する処理と、代表地図から直線移動領域を検出する処理とを両方ともに行い、直線要素又は直線移動領域に基づいて全体地図MP1の向きを補正すればよい。なお、代表地図から直線要素と直線移動領域の両方が検出された場合、直線移動領域に比べて直線要素の方が方向を特定しやすいので、補正部74は、直線要素に基づいて全体地図MP1の向きを補正することが好ましい。
(4)変形例
上記実施形態は、本開示の様々な実施形態の一つに過ぎない。上記実施形態は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。また、地図生成システム7と同様の機能は、地図生成方法、コンピュータプログラム、又はプログラムを記録した非一時的な記録媒体等で具現化されてもよい。一態様に係る地図生成方法は、移動ロボット3が移動する移動領域A1の全体地図MP1を生成する方法である。地図生成方法は、地図生成工程と、地図合成工程と、選択工程と、補正工程と、を含む。部分地図生成工程では、移動領域A1内の複数の部分領域にそれぞれ対応する複数の部分地図を生成する。地図合成工程では、複数の部分地図を合成して全体地図MP1を生成する。選択工程では、複数の部分地図から、方向を特定するための方向要素が存在する代表地図を選択する。補正工程では、代表地図に存在する方向要素に基づいて、地図合成工程で生成された全体地図MP1の向きを補正する。一態様に係る(コンピュータ)プログラムは、コンピュータシステムに、上記の地図生成方法を実行させるためのプログラムである。
以下、上記の実施形態の変形例を列挙する。以下に説明する変形例は、適宜組み合わせて適用可能である。
本開示における地図生成システム7又は地図生成方法の実行主体は、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示における地図生成システム7又は地図生成方法の実行主体としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路(IC)又は大規模集積回路(LSI)を含む1又は複数の電子回路で構成される。ここでいうIC又はLSI等の集積回路は、集積の度合いによって呼び方が異なっており、システムLSI、VLSI(Very Large Scale Integration)、又はULSI(Ultra Large Scale Integration)と呼ばれる集積回路を含む。さらに、LSIの製造後にプログラムされる、FPGA(Field-Programmable Gate Array)、又はLSI内部の接合関係の再構成若しくはLSI内部の回路区画の再構成が可能な論理デバイスについても、プロセッサとして採用することができる。複数の電子回路は、1つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、1つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。ここでいうコンピュータシステムは、1以上のプロセッサ及び1以上のメモリを有するマイクロコントローラを含む。したがって、マイクロコントローラについても、半導体集積回路又は大規模集積回路を含む1又は複数の電子回路で構成される。
また、地図生成システム7における複数の機能が、1つの筐体内に集約されていることは地図生成システム7に必須の構成ではなく、地図生成システム7の構成要素は、複数の筐体に分散して設けられていてもよい。さらに、地図生成システム7の少なくとも一部の機能がクラウド(クラウドコンピューティング)等によって実現されてもよい。
また、上記のロボットシステム1では、制御システム2と、作成支援システム4と、操作用端末5,6とが、別々のコンピュータシステムで実現されているが、制御システム2が操作用端末5,6の機能を備えていてもよいし、作成支援システム4が操作用端末5,6の機能を備えていてもよい。また、操作用端末5,6と制御システム2と作成支援システム4とが一つのコンピュータシステムで実現されていてもよい。すなわち、上記のロボットシステム1では、制御システム2と、作成支援システム4と、操作用端末5,6とが、複数の装置に分散されているが、制御システム2、作成支援システム4、及び操作用端末5,6の少なくとも一部の機能が、1つの筐体内に集約されていてもよい。
上記実施形態では地図生成システム7が移動ロボット3に備えられているが、地図生成システム7が移動ロボット3に備えられていることは必須ではなく、地図生成システム7は、移動ロボット3の外部に設けられていてもよい。
上記実施形態で説明したロボットシステム1では移動ロボット3の台数が1台であるが、ロボットシステム1は、複数台の移動ロボット3を備えていてもよい。なお、ロボットシステム1が複数台の移動ロボット3を備える場合でも、複数台の移動ロボット3のうちの1台が地図生成システム7を備えていればよく、1台の移動ロボット3が備える地図生成システム7が移動領域A1の全体地図を生成すればよい。また、全体地図を生成するために用いられる複数の部分地図は1台の移動ロボット3が生成してもよいし,複数台の移動ロボット3が分担して生成してもよい。そして、そのうちの1台の移動ロボット3が備える地図合成部72が、複数台の移動ロボット3で生成された複数の部分地図を合成して全体地図を生成してもよい。また、複数の移動ロボット3と通信可能なサーバが地図合成部72を備え、サーバが備える地図合成部72が、複数台の移動ロボット3で生成された複数の部分地図を合成して全体地図を生成してもよい。
また、移動ロボット3はAGVに限定されず、運転が自動化されたトラック、又は、フォークリフトのようなマテリアルハンドリング機器等でもよい。
また、移動ロボット3が対象物を搬送する搬送ロボットである場合、移動ロボット3が搬送する対象物は、物品、又は、物品を載せるためのパレット或いは台車等である。移動ロボット3が工場内で用いられる場合、移動ロボット3が搬送する対象物の物品は、製造装置に供給する部品又は材料、製造装置によって製造された完成品又は半完成品を含んでもよいし、製造装置に部品を供給する部品供給装置を含んでもよい。
(まとめ)
以上説明したように、第1の態様の地図生成方法は、移動ロボット(3)が移動する移動領域(A1)の全体地図(MP1)を生成する地図生成方法である。地図生成方法は、部分地図生成工程と、地図合成工程と、選択工程と、補正工程と、を含む。部分地図生成工程では、移動領域(A1)内の複数の部分領域にそれぞれ対応する複数の部分地図(MP21~MP28)を生成する。地図合成工程では、複数の部分地図(MP21~MP28)を合成して全体地図(MP1)を生成する。選択工程では、複数の部分地図(MP21~MP28)から、方向を特定するための方向要素(DE1,DE2)が存在する代表地図を選択する。補正工程では、代表地図に存在する方向要素(DE1,DE2)に基づいて地図合成工程で生成された全体地図(MP1)の向きを補正する。
この態様によれば、補正工程では、代表地図に存在する方向要素(DE1,DE2)に基づいて全体地図(MP1)の向きを補正しており、例えば全体地図(MP1)に設定される2つの直交軸の一方が、方向要素(DE1,DE2)の向きと平行になるように全体地図(MP1)の向きを補正できる。これにより、全体地図(MP1)に存在する方向要素に沿って移動ロボット(3)を移動させる場合、全体地図(MP1)に設定される直交軸に沿って移動ロボット(3)を移動させればよい。したがって、第1の態様の地図生成方法によれば、移動ロボット(3)が移動する移動ルートの設計が容易な全体地図(MP1)を生成することができる。
第2の態様の地図生成方法では、第1の態様において、方向要素は、代表地図に存在する長さが第1閾値以上の直線要素(DE1)を含む。
この態様によれば、代表地図に存在する直線要素(DE1)に基づいて、全体地図(MP1)の向きを補正することができる。
第3の態様の地図生成方法では、第1又は2の態様において、方向要素は、代表地図に存在する直線移動領域(DE2)を含む。直線移動領域(DE2)の向きは、移動ロボット(3)が直線移動可能で領域であって、長さが第2閾値以上である。
この態様によれば、代表地図に存在する直線移動領域(DE2)の向きに基づいて、全体地図(MP1)の向きを補正することができる。
第4の態様の地図生成方法では、第3の態様において、補正工程では、代表地図から、長さが第2閾値以上である複数本の線分(LN1)を等間隔に平行配置したときに、線分(LN1)の本数が最大となる領域を直線移動領域(DE2)として検出する。
この態様によれば、代表地図に存在する直線移動領域(DE2)の向きに基づいて、全体地図(MP1)の向きを補正することができる。
第5の態様の地図生成方法では、第1~4のいずれかの態様において、部分地図生成工程では、複数の部分領域のうち作成対象の部分領域を移動ロボット(3)が移動する間に、移動ロボット(3)が備える測域センサ(33)が測定範囲内に存在する対象物の位置を測定することによって、作成対象の部分領域に対応する部分地図(MP21~MP28)を生成する。
この態様によれば、移動ロボット(3)が部分領域を移動する間に測域センサ(33)が測定した測定結果に基づいて部分地図(MP21~MP28)を生成することができる。
第6の態様の地図生成方法は、第1~5のいずれかの態様において、部分地図生成工程では、移動ロボット(3)が制御指示に基づく一連の動作を行うごとに、一連の動作を行う間に移動した部分領域の部分地図(MP21~MP28)を生成する。
この態様によれば、制御指示に基づく一連の動作が終わったタイミング、言い換えると制御指示が切り替わるタイミングで、部分地図(MP21~MP28)を生成することができる。
第7の態様の地図生成方法は、第5又は6の態様において、ノイズ除去工程を含む。ノイズ除去工程では、複数の部分地図(MP21~MP28)及び全体地図(MP1)の少なくとも一方において、部分地図生成工程で地図生成のために移動ロボット(3)が移動した移動ルート上に位置する物体を除去する。
この態様によれば、移動ルート上に物体が存在しない全体地図(MP1)を生成することができる。
第8の態様の地図生成方法では、第5~7のいずれかの態様において、選択工程では、部分地図生成工程において、地図生成のために移動ロボット(3)が直線移動した移動距離が最も長い部分領域の部分地図(MP21~MP28)を代表地図として選択する。
この態様によれば、直線要素又は直線移動領域が存在する可能性が高い部分地図(MP21~MP28)を代表地図として選択することができる。
第9の態様の地図生成方法では、第5~7のいずれかの態様において、選択工程では、部分地図生成工程において、地図生成のために移動ロボット(3)が直線移動した移動距離が第3閾値以上である2以上の部分地図(MP21~MP28)を代表地図として順番に選択する。補正工程では、代表地図として選択された2以上の部分地図(MP21~MP28)に存在する方向要素(DE1,DE2)に基づいて地図合成工程で生成された全体地図(MP1)の向きを補正する。
この態様によれば、移動距離が第3閾値以上である2以上の部分地図(MP21~MP28)から方向要素を検出するので、複数の部分地図(MP21~MP28)の全てから方向要素を検出する場合に比べて、方向要素を検出する処理を低減できる。
第10の態様のプログラムは、コンピュータシステムに、第1~9のいずれかの態様の地図生成方法を、実行させるためのプログラムである。
この態様によれば、移動ロボット(3)が移動する移動ルートの設計が容易な全体地図(MP1)を生成することができる。
第11の態様の地図生成システムは、移動ロボット(3)の移動する移動領域(A1)の全体地図(MP1)を生成する。地図生成システムは、部分地図生成部(71)と、地図合成部(72)と、選択部(73)と、補正部(74)と、を含む。部分地図生成部(71)は、移動領域(A1)内の複数の部分領域にそれぞれ対応する複数の部分地図(MP21~MP28)を生成する。地図合成部(72)は、複数の部分地図(MP21~MP28)を合成して全体地図(MP1)を生成する。選択部(73)は、複数の部分地図(MP21~MP28)から、方向を特定するための方向要素(DE1,DE2)が存在する代表地図を選択する。補正部(74)は、代表地図に存在する方向要素(DE1,DE2)に基づいて地図合成部(72)で生成された全体地図(MP1)の向きを補正する。
この態様によれば、補正部(74)は、代表地図に存在する方向要素(DE1,DE2)に基づいて全体地図(MP1)の向きを補正しており、例えば全体地図(MP1)に設定される2つの直交軸の少なくとも一方が、方向要素(DE1,DE2)の向きと平行になるように全体地図(MP1)の向きを補正できる。これにより、全体地図(MP1)に存在する方向要素に沿って移動ロボット(3)を移動させる場合、全体地図(MP1)に設定される直交軸に沿って移動ロボット(3)を移動させればよい。したがって、第11の態様の地図生成システム(7)によれば、移動ロボット(3)が移動する移動ルートの設計が容易な全体地図(MP1)を生成することができる。
第12の態様の移動ロボット(3)は、移動体(30)と、移動体(30)の移動を制御する移動制御部(37)と、移動体(30)の周囲に存在する対象物を検出する測域センサ(33)と、第11の態様の地図生成システム(7)と、を備える。
この態様によれば、移動ロボット(3)が移動する移動ルートの設計が容易な全体地図(MP1)を生成することができる。
上記態様に限らず、上記実施形態に係る地図生成システム(7)の種々の構成(変形例を含む)は、地図生成方法、(コンピュータ)プログラム、又はプログラムを記録した非一時的記録媒体等で具現化可能である。
第2~第9の態様に係る構成については、地図生成方法に必須の構成ではなく、適宜省略可能である。