JP6816830B2 - 位置推定システム、および当該位置推定システムを備える移動体 - Google Patents

位置推定システム、および当該位置推定システムを備える移動体 Download PDF

Info

Publication number
JP6816830B2
JP6816830B2 JP2019539338A JP2019539338A JP6816830B2 JP 6816830 B2 JP6816830 B2 JP 6816830B2 JP 2019539338 A JP2019539338 A JP 2019539338A JP 2019539338 A JP2019539338 A JP 2019539338A JP 6816830 B2 JP6816830 B2 JP 6816830B2
Authority
JP
Japan
Prior art keywords
map
scan data
position estimation
reference map
estimation system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2019539338A
Other languages
English (en)
Other versions
JPWO2019044500A1 (ja
Inventor
慎治 鈴木
慎治 鈴木
佐伯 哲夫
哲夫 佐伯
中谷 政次
政次 中谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nidec Corp
Original Assignee
Nidec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nidec Corp filed Critical Nidec Corp
Publication of JPWO2019044500A1 publication Critical patent/JPWO2019044500A1/ja
Application granted granted Critical
Publication of JP6816830B2 publication Critical patent/JP6816830B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Instructional Devices (AREA)
  • Optical Radar Systems And Details Thereof (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)

Description

本開示は、位置推定システム、および当該位置推定システムを備える移動体に関する。
無人搬送車(無人搬送台車)および移動ロボットのように自律移動可能な移動体の開発が進められている。
特開2008−250905号公報は、レーザレンジファインダから取得した局所地図と、前もって用意された地図とのマッチングによって自己位置推定を行う移動ロボットを開示している。
特開2008−250905号公報
特開2008−250905号公報に開示されている移動ロボットは、マッチングを行うとき、環境地図から不要な点を除去して自己位置の推定を行っている。
本開示の実施形態は、地図作成時の演算量を低減できる位置推定システムおよび移動体を提供する。
本開示の位置推定システムは、非限定的で例示的な実施形態において、環境をスキャンしてスキャンデータを周期的に出力する外界センサに接続されて使用される位置推定システムであって、プロセッサと、前記プロセッサを動作させるコンピュータプログラムを記憶するメモリとを備えている。前記プロセッサは、前記コンピュータプログラムの指令にしたがって、前記外界センサから前記スキャンデータを取得し、前記スキャンデータから参照地図を作成すること、前記外界センサから前記スキャンデータを新たに取得したとき、新たに取得した最新スキャンデータと前記参照地図とのマッチングを行うことにより、前記参照地図上における前記外界センサの位置および姿勢を推定し、前記最新スキャンデータを前記参照地図に追加して前記参照地図を更新すること、複数回更新された参照地図から、前記最新スキャンデータを含む一部分以外の部分を削除して、前記参照地図のリセットを行うこと、および、前記リセットを行うとき、前記リセット前の前記複数回更新された参照地図に基づいて環境地図を更新することを実行する。
本開示の移動体は、非限定的で例示的な実施形態において、上記の位置推定システムと、外界センサと、前記位置推定システムが作成した前記環境地図を記憶する記憶装置と、移動のための駆動装置とを備えている。
本開示のコンピュータプログラムは、非限定的で例示的な実施形態において、上記いずれかの位置推定システムに使用されるコンピュータプログラムである。
本開示の実施形態によれば、環境地図を作成するとき、外界センサから周期的に出力される複数のスキャンデータのマッチングを少ない演算量で実行することが可能になる。
図1は、本開示による移動体の実施形態の構成を示す図である。 図2は、移動体が移動する環境の例を模式的に示す平面レイアウト図である。 図3は、図2に示される環境の環境地図を示す図である。 図4Aは、外界センサが時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。 図4Bは、外界センサが時刻t+Δtに取得したスキャンデータSD(t+Δt)の例を模式的に示す図である。 図4Cは、スキャンデータSD(t)にスキャンデータSD(t+Δt)をマッチングさせた状態を模式的に示す図である。 図5は、スキャンデータを構成する点群が初期の位置から回転および並進して、環境地図の点群に近づく様子を模式的に示す図である。 図6は、スキャンデータの剛体変換後の位置および姿勢を示す図である。 図7Aは、外界センサからスキャンデータを取得し、スキャンデータから参照地図を作成した後、新たに取得したスキャンデータを参照地図にマッチングさせた状態を模式的に示す図である。 図7Bは、新たに取得したスキャンデータを図7Aの参照地図に追加して更新した参照地図を模式的に示す図である。 図7Cは、新たに取得したスキャンデータを図7Bの参照地図に追加して更新した参照地図を模式的に示す図である。 図8Aは、更新前の環境地図を模式的に示す図である。 図8Bは、参照地図に基づいて環境地図を更新するときの様子を示す図である。 図8Cは、参照地図と環境地図とのマッチングを行い、参照地図を環境地図に整合させた状態を模式的に示す図である。 図9Aは、外界センサが時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。 図9Bは、環境地図Mに対するスキャンデータSD(t)のマッチングを開始するときの状態を模式的に示す図である。 図9Cは、環境地図Mに対するスキャンデータSD(t)のマッチングが完了した状態を模式的に示す図である。 図10は、過去に得られた移動体の位置および姿勢の履歴と、現在の位置および姿勢の予測値を模式的に示す図である。 図11は、本開示の実施形態における位置推定装置の動作の一部を示すフローチャートである。 図12は、本開示の実施形態における位置推定装置の動作の一部を示すフローチャートである。 図13は、本開示の実施形態における位置推定装置の動作の他の例を示すフローチャートである。 図14は、本開示による、各AGVの走行を制御する制御システムの概要を示す図である。 図15は、AGVが存在する環境の一例を示す斜視図である。 図16は、接続される前のAGVおよび牽引台車を示す斜視図である。 図17は、接続されたAGVおよび牽引台車を示す斜視図である。 図18は、本実施形態にかかる例示的なAGVの外観図である。 図19Aは、AGVの第1のハードウェア構成例を示す図である。 図19Bは、AGVの第2のハードウェア構成例を示す図である。 図20は、運行管理装置のハードウェア構成例を示す図である。
<用語>
「無人搬送車」(AGV)とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。
「無人」の用語は、車両の操舵に人を必要としないことを意味しており、無人搬送車が「人(たとえば荷物の積み下ろしを行う者)」を搬送することは除外しない。
「無人牽引車」とは、人手または自動で荷物の積み込み荷卸しをする台車を牽引して、指示された場所まで自動走行する無軌道車両である。
「無人フォークリフト」とは、荷物移載用のフォークなどを上下させるマストを備え、フォークなどに荷物を自動移載し指示された場所まで自動走行し、自動荷役作業をする無軌道車両である。
「無軌道車両」とは、車輪と、車輪を回転させる電気モータまたはエンジンを備える移動体(vehicle)である。
「移動体」とは、人または荷物を載せて移動する装置であり、移動のための駆動力(traction)を発生させる車輪、二足または多足歩行装置、プロペラなどの駆動装置を備える。本開示における「移動体」の用語は、狭義の無人搬送車のみならず、モバイルロボット、サービスロボット、およびドローンを含む。
「自動走行」は、無人搬送車が通信によって接続されるコンピュータの運行管理システムの指令に基づく走行と、無人搬送車が備える制御装置による自律的走行とを含む。自律的走行には、無人搬送車が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれる。また、無人搬送車は、一時的に作業者の指示に基づくマニュアル走行を行ってもよい。「自動走行」は、一般には「ガイド式」の走行および「ガイドレス式」の走行の両方を含むが、本開示では「ガイドレス式」の走行を意味する。
「ガイド式」とは、誘導体を連続的または断続的に設置し、誘導体を利用して無人搬送車を誘導する方式である。
「ガイドレス式」とは、誘導体を設置せずに誘導する方式である。本開示の実施形態における無人搬送車は、位置推定装置を備え、ガイドレス式で走行することができる。
「位置推定装置」は、レーザレンジファインダなどの外界センサによって取得されたセンサデータに基づいて環境地図上における自己位置を推定する装置である。
「外界センサ」は、移動体の外部の状態をセンシングするセンサである。外界センサには、たとえば、レーザレンジファインダ(測域センサともいう)、カメラ(またはイメージセンサ)、LIDAR(Light Detection and Ranging)、ミリ波レーダ、超音波センサ、および磁気センサがある。
「内界センサ」は、移動体の内部の状態をセンシングするセンサである。内界センサには、たとえばロータリエンコーダ(以下、単に「エンコーダ」と称することがある)、加速度センサ、および角加速度センサ(たとえばジャイロセンサ)がある。
「SLAM(スラム)」とは、Simultaneous Localization and Mappingの略語であり、自己位置推定と環境地図作成を同時に行うことを意味する。
<本開示における移動体の基本構成>
図1を参照する。本開示の移動体10は、図1に示される例示的な実施形態において、環境をスキャンしてスキャンデータを周期的に出力する外界センサ102を備える。外界センサ102の典型例は、レーザレンジファインダ(LRF)である。LRFは周期的にたとえば赤外線または可視光のレーザビームを周囲に放射して周囲の環境をスキャンする。レーザビームは、たとえば、壁、柱等の構造物、床の上に置かれた物体などの表面で反射される。LRFは、レーザビームの反射光を受けて各反射点までの距離を計算し、各反射点の位置が示された測定結果のデータを出力する。各反射点の位置には、反射光の到来方向および距離が反映されている。測定結果のデータ(スキャンデータ)は、「環境計測データ」または「センサデータ」と呼ばれることがある。
外界センサ102による環境のスキャンは、たとえば、外界センサ102の正面を基準として左右135度(合計270度)の範囲の環境に対して行われる。具体的には、水平面内において所定のステップ角度ごとに方向を変化させながらパルス状のレーザビームを放射し、各レーザビームの反射光を検出して距離を計測する。ステップ角度が0.3度であれば、合計901ステップ分の角度で決まる方向における反射点までの距離の測定データを得ることができる。この例において、外界センサ102が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかし、外界センサは、三次元的なスキャンを行ってもよい。
スキャンデータの典型例は、スキャンごとに取得される点群(point cloud)を構成する各点の位置座標によって表現され得る。点の位置座標は、移動体10とともに移動するローカル座標系によって規定される。このようなローカル座標系は、移動体座標系またはセンサ座標系と呼ばれ得る。本開示においては、移動体10に固定されたローカル座標系の原点を移動体10の「位置」と定義し、ローカル座標系の向き(orientation)を移動体10の「姿勢」と定義する。以下、位置および姿勢を合わせて「ポーズ」と称することがある。
スキャンデータは、極座標系で表示される場合、各点の位置をローカル座標系における原点からの「方向」および「距離」で示す数値セットから構成され得る。極座標系の表示は、直交座標系の表示に変換され得る。以下の説明では、簡単のため、外界センサから出力されたスキャンデータは、直交座標系で表示されているとする。
移動体10は、環境地図を記憶する記憶装置104と、位置推定システム115とを備える。
位置推定システム115は、外界センサ102に接続されて使用され、プロセッサ106と、プロセッサの動作を制御するコンピュータプログラムを記憶したメモリ107とを有している。
位置推定システム115は、外界センサ102から取得したスキャンデータと、記憶装置104から読み出された環境地図とのマッチングを行い、移動体10の位置および姿勢、すなわちポーズを推定する。このマッチングは、パターンマッチングまたはスキャンマッチングと呼ばれ、種々のアルゴリズムにしたがって実行され得る。マッチングアルゴリズムの典型例は、Iterative Closest Point (ICP:反復最近接点)アルゴリズムである。
位置推定システム115は、後述するように、外界センサ102から出力される複数のスキャンデータをマッチングによって整合させ、連結することにより、環境地図を作成する。
本開示の実施形態にける位置推定システム115は、プロセッサ106と、プロセッサ106を動作させるコンピュータプログラムを記憶するメモリ107とによって実現される。プロセッサ106は、コンピュータプログラムの指令にしたがって、以下の動作を実行する。
(1)外界センサ102からスキャンデータを取得し、スキャンデータから参照地図を作成する。
(2)外界センサ102からスキャンデータを新たに取得したとき、新たに取得した最新スキャンデータと参照地図とのマッチングを行うことにより、参照地図上における外界センサ102の位置および姿勢(すなわち移動体10の位置および姿勢)を推定し、最新スキャンデータを参照地図に追加して参照地図を更新する。
(3)複数回更新された参照地図から、最新スキャンデータを含む一部分以外の部分を削除して、参照地図のリセットを行う。
(4)リセットを行うとき、リセット前の複数回更新された参照地図に基づいて環境地図を更新する。
上記の動作の詳細は後述する。
図示されている例において、移動体10は、さらに、駆動装置108、自動走行制御装置110、および通信回路112を備えている。駆動装置108は、移動体10が移動するための駆動力を発生する装置である。駆動装置108の例は、電気モータまたはエンジンによって回転する車輪(駆動輪)、モータまたは他のアクチュエータによって動作する二足または多足歩行装置を含む。車輪は、メカナムホイールなどの全方位ホイールであってもよい。また、移動体10が空中または水中を移動する移動体、あるいはホバークラフトであってもよく、その場合の駆動装置108は、モータによって回転するプロペラを含む。
自動走行制御装置110は、駆動装置108を操作して移動体10の移動条件(速度、加速度、移動方向など)を制御する。自動走行制御装置110は、所定の走行経路に沿って移動体10を移動させてもよく、外部から与えられる指令にしたがって移動させてもよい。位置推定システム115は、移動体10の移動中または停止中において、移動体10の位置および姿勢の推定値を算出する。自動走行制御装置110は、この推定値を参照して移動体10の走行を制御する。
位置推定システム115および自動走行制御装置110を、全体として、走行制御装置120と呼んでもよい。自動走行制御装置110も、位置推定システム115とともに、上述したプロセッサ106と、プロセッサ106の動作を制御するコンピュータプログラムを格納したメモリ107によって構成され得る。このようなプロセッサ106およびメモリ107は、1個または複数の半導体集積回路によって実現され得る。
通信回路112は、移動体10が外部の管理装置、他の移動体、または操作者のモバイル端末機器などを含む通信ネットワークに接続してデータおよび/または指令のやりとりを行う回路である。
<環境地図>
図2は、移動体10が移動する環境200の例を模式的に示す平面レイアウト図である。環境200は、より広い環境の一部である。図2において、太い直線は、たとえば建造物の固定壁202を示している。
図3は、図2に示される環境200の地図(環境地図M)を示す図である。図中の各ドット204は、環境地図Mを構成する点群の各点に相当する。本開示において、環境地図Mの点群を「参照点群」と称し、スキャンデータの点群を「データ点群」または「ソース点群」と称する場合がある。マッチングは、たとえば、位置が固定された環境地図(参照点群)に対して、スキャンデータ(データ点群)の位置合わせを行うことである。ICPアルゴリズムによるマッチングを行う場合、具体的には、参照点群とデータ点群との間で対応する点のペアが選択され、各ペアを構成する点同士の距離(誤差)を最小化するようにデータ点群の位置および向きが調整される。
図3において、ドット204は、簡単のため、複数の線分上に等間隔で配列されている。現実の環境地図Mにおける点群は、より複雑な配置パターンを有していてもよい。環境地図Mは、点群地図に限定されず、直線または曲線を構成要素とする地図であってもよいし、占有格子地図であってもよい。すなわちスキャンデータと環境地図Mとの間でマッチングを行うことが可能な構造を環境地図Mが備えていればよい。
移動体10が図3に示される位置PA、位置PB、および位置PCのそれぞれにあるときに、移動体10の外界センサ102が取得するスキャンデータは、それぞれ、異なる点群の配列を有する。移動体10が位置PAから、位置PBを経て位置PCに達するまでの移動時間が、外界センサ102によるスキャンの周期に比べて十分に長い場合、すなわち、移動体10の移動が遅い場合、時間軸上で隣接する2つのスキャンデータは極めて類似している。しかし、移動体10の移動が著しく速い場合は、時間軸上で隣接する2つのスキャンデータは大きく異なってしまう可能性がある。
このように外界センサ102から順次出力されるスキャンデータのうち、最新のスキャンデータがその直前のスキャンデータに類似している場合は、マッチングは相対的に容易であり、短時間で信頼度の高いマッチングが期待される。しかし、移動体10の移動速度が相対的に高い場合は、最新のスキャンデータがその直前のスキャンデータに類似していない可能性があり、マッチングに要する時間が長くなったり、所定時間内にマッチングが完了しないことがあり得る。
<地図作成時のマッチング>
図4Aは、外界センサ102が時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。スキャンデータSD(t)は、移動体10とともに位置および姿勢が変わるセンサ座標系で表示されている。スキャンデータSD(t)は、外界センサ102の真正面をV軸として、V軸から時計周りに90°回転した方向をU軸とするUV座標系によって表現される。UV座標系の原点に移動体10、より正確には外界センサ102が位置している。本開示では、移動体10が前進するとき、移動体10は、外界センサ102の真正面、すなわちV軸の方向に進む。わかりやすさのため、スキャンデータSD(t)を構成する点は黒丸で記載されている。
本明細書において位置推定システム115が外界センサ102からスキャンデータを取得する周期をΔtとする。Δtはたとえば200ミリ秒である。移動体10が移動しているとき、外界センサ102から周期的に取得されるスキャンデータの内容は変化し得る。
図4Bは、外界センサ102が時刻t+Δtに取得したスキャンデータSD(t+Δt)の例を模式的に示す図である。わかりやすさのため、スキャンデータSD(t+Δt)を構成する点は白丸で記載されている。
Δtがたとえば200ミリ秒である場合、移動体10が毎秒1メールの速さで移動していると、Δtの間に移動体10は20センチメートル程度移動する。通常、20センチメートル程度の移動によって、移動体10の環境は大きく変化しないため、外界センサ102が時刻t+Δtにスキャンした環境と、時刻tにスキャンした環境との間には広い範囲で重複した部分が含まれる。したがって、スキャンデータSD(t)の点群とスキャンデータSD(t+Δt)の点群との間には多くの対応点が含まれることになる。
図4Cは、スキャンデータSD(t)とスキャンデータSD(t+Δt)とのマッチングが完了した状態を模式的に示している。この例では、スキャンデータSD(t)に対してスキャンデータSD(t+Δt)が整合するように位置合わせが行われている。図4CのUV座標系の原点には時刻tにおける移動体10が位置し、時刻t+Δtにおける移動体10は、UV座標系の原点から移動した位置にある。2枚のスキャンデータのマッチング行うことにより、一方のローカル座標系に対する他方ローカル座標系の配置関係が求められる。
こうして、周期的に取得される複数のスキャンデータSD(t)、SD(t+Δt)、・・・、SD(t+N×Δt)を連結することにより、局所的な環境地図(参照地図)を作成することができる。ここで、Nは1以上の整数である。
図5は、時刻tにおけるスキャンデータを構成する点群が初期の位置から回転および並進して、参照地図の点群に近づく様子を模式的に示す図である。時刻tにおけるスキャンデータの点群を構成するK個の点のうちのk番目(k=1、2、・・・、K−1、K)の点の座標値をZt,k、この点に対応する参照地図上の点の座標値をmkとする。このとき、2つの点群における対応点の誤差は、K個の対応点について計算した誤差の二乗和であるΣ(Zt,k-mk2をコスト関数として評価することができる。Σ(Zt,k-mk2を小さくするように回転および並進の剛体変換を決定する。剛体変換は、回転の角度および並進のベクトルをパラメータとして含む変換行列(同次変換行列)によって規定される。
図6は、スキャンデータの剛体変換後の位置および姿勢を示す図である。図6に示される例において、スキャンデータと参照地図とのマッチングは完了しておらず、2つの点群の間には、まだ大きな誤差(位置ずれ)が存在している。この位置ずれを縮小するため、剛体変換をさらに行う。こうして、誤差が所定値を下回る大きさになったとき、マッチングは完了する。
<参照地図の作成>
図7Aは、新たに取得した最新のスキャンデータSD(b)と、前回に取得したスキャンデータSD(a)とのマッチングが完了した状態を模式的に示す図である。図7Aにおいて、黒円の点群は前回のスキャンデータを表し、白丸の点群は最新のスキャンデータを表している。図7Aには、前回のスキャンデータを取得したときの移動体10の位置a、および、最新のスキャンデータを取得したときの移動体10の位置bが示されている。
この例において、前回に取得したスキャンデータSD(a)は「参照地図RM」を構成している。参照地図RMは、作成されつつある環境地図の一部である。最新のスキャンデータSD(b)の位置および向きは、前回に取得したスキャンデータSD(a)の位置および向きに対して整合するようにマッチングが実行される。
このようなマッチングを行うことにより、参照地図RM上における移動体10bの位置および姿勢を知ることができる。マッチングが完了した後、スキャンデータSD(b)を参照地図RMに追加して参照地図RMを更新する。
スキャンデータSD(b)の座標系は、スキャンデータSD(a)の座標系に連結される。この連結は、2つの座標系の回転および並進の変換(剛体変換)を規定する行列に表される。このような変換の行列によれば、スキャンデータSD(b)上の各点の座標値を、スキャンデータSD(a)の座標系における座標値に変換することができる。
図7Bは、次に取得したスキャンデータを図7Aの参照地図RMに追加して更新した参照地図RMを示している。図7Bにおいて、黒円の点群は更新前の参照地図RMを表し、白丸の点群は最新のスキャンデータSD(c)を表している。図7Bには、前々回、前回、および、最新のスキャンデータを取得したときの移動体10の位置a、b、cが示されている。図7Bの白丸の点群および黒円の点群の全体は、更新された参照地図RMを構成している。
図7Cは、新たに取得したスキャンデータSD(d)を図7Bの参照地図RMに追加して更新した参照地図RMを示している。図7Cにおいて、黒円の点群は更新前の参照地図RMを表し、白丸の点群は最新のスキャンデータSD(d)を表している。図7Cには、過去の推定位置にある移動体10の位置a、b、cに加えて、最新のスキャンデータSD(d)のマッチングによって推定した位置にある移動体10の位置dが示されている。図7Cの白丸の点群および黒円の点群の全体は、更新された参照地図RMを構成している。
このようにして、参照地図RMは次々と更新されるため、参照地図RM内の点の個数が外界センサ102のスキャンごとに増大していく。このことは、最新スキャンデータと参照地図RMとのマッチングを行うときの演算量の増加を引き起こす。たとえば1枚のスキャンデータが最大約1000個の点を含む場合、2000枚のスキャンデータをつなぎ合わせて1枚の参照地図RMを作成すると、その参照地図RM内の点の個数は、最大で約200万個にも達する。対応する点を見つけてマッチングのための演算を反復するとき、参照地図RMの点群が大きすぎると、スキャン周期であるΔtの期間内にマッチングが完了しない可能性がある。
本開示の位置推定システムでは、複数回更新された参照地図から、最新スキャンデータを含む一部分以外の部分を削除して参照地図のリセットを行う。また、リセットを行うとき、リセット前の複数回更新された参照地図に基づいて環境地図を更新する。このため、環境地図そのものは、スキャンによって得た環境情報を失うことなく保持し得る。
参照地図のリセットは、たとえば、(i)参照地図を更新する回数が所定数に達したとき、(ii)参照地図のデータ量が所定量に達したとき、または(iii)前回のリセットからの経過時間が所定長さに達したときに行うことができる。(i)の場合の「所定数」は、たとえば100回であり得る。(ii)の場合の「所定量」は、たとえば10000であり得る。(iii)の場合の「所定長さ」は、たとえば5分であり得る。
リセット後の参照地図のデータ量を最小にするには、最新のスキャンデータ、すなわち、リセットを行う時点で最も新しい1回のスキャンによって取得したデータのみを残して他のスキャンデータを削除すればよい。最新のスキャンデータに含まれる点の個数が所定値以下の場合、リセット後のマッチング精度を高めるため、最新のスキャンデータの加えて、現在に近い複数のスキャンデータをリセット後の参照地図に含めてもよい。
複数のスキャンデータから参照地図を作成するとき、点群の単位面積あたり点の密度が所定値を超えて増加することはマッチングにとって無駄になり得る。たとえば、環境内で10×10cm2のサイズを有する矩形の領域に相当する部分に多数の点(測定点)が存在した場合、マッチングに要する演算量が増加する割合に比べてマッチング精度が充分に向上せずに飽和することが起こり得る。このような無駄を抑制するため、スキャンデータおよび/または参照地図を構成する点群の密度が所定密度を超えたときには、点群から幾つかの点を間引き、点群の密度を所定密度以下に低下させる処理を行ってもよい。「所定密度」は、たとえば1個/(10cm)2であり得る。
図8Aは、更新前の環境地図Mを模式的に示している。図8Bは、参照地図RMに基づいて環境地図Mを更新するときの様子を示している。この例において、参照地図RMと環境地図Mとの間で配置関係がずれている。図7Aを参照しながら説明した例では、最初に参照地図RMを構成していた点群は、スキャンデータSD(a)であった。その後に取得されたスキャンデータSD(b)は、スキャンデータSD(a)に対して整合している。このため、スキャンデータSD(a)を基準に連結された参照地図RMの位置および向きは、スキャンデータSD(a)の位置および向きに依存する。一方、スキャンデータSD(a)の位置および向きは、スキャンデータSD(a)を取得したときの移動体10の位置aおよび姿勢(向き)の推定値によって規定される。推定値が微小誤差を含む可能性があり、それによって更新後の環境地図が実際の地図(環境)から乖離していくことが懸念される。
図8Cは、参照地図RMと環境地図Mとのマッチングを行い、参照地図RMを環境地図Mに整合させた状態を模式的に示している。このマッチングにより、更新後の環境地図が実際の地図から乖離していくことが抑制される。
このようにして環境地図Mの更新が繰り返され、やがて環境地図Mは完成する。このようにして作成された環境地図は、その後、移動体10の移動に際して自己位置推定に利用される。
<環境地図を用いた位置推定>
図9Aは、外界センサが時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。スキャンデータSD(t)は、移動体10とともに位置および姿勢が変わるセンサ座標系で表示され、スキャンデータSD(t)を構成する点は白丸で記載されている。
図9Bは、環境地図Mに対するスキャンデータSD(t)のマッチングを開始するときの状態を模式的に示す図である。図1のプロセッサ106は、外界センサ102からスキャンデータSD(t)を取得すると、スキャンデータSD(t)と記憶装置104から読み出した環境地図Mとのマッチングを行うことにより、移動体10の環境地図M上における位置および姿勢を推定することができる。このようなマッチングを開始するとき、時刻tにおける移動体10の位置および姿勢の初期値を決定する必要がある(図5参照)。初期値が、実際の移動体10の位置および姿勢に近いほど、マッチングに要する時間は短縮され得る。
図9Cは、環境地図Mに対するスキャンデータSD(t)のマッチングが完了した状態を模式的に示す図である。
本開示の実施形態では、この初期値の決定に際して2種類の方法を採用することができる。
第1の方法では、前回のマッチングによって推定した位置および姿勢から変化量をオドメトリによって計測することである。たとえば、移動体10が2個の駆動輪によって移動するとき、それぞれの駆動輪またはモータに取り付けられたエンコーダにより、移動体10の移動量および移動方向を求めることができる。オドメトリを用いる方法は公知であるため、さらに詳細な説明は特に必要ない。
第2の方法は、移動体10の位置および姿勢の推定値の履歴に基づいて、現在の位置および姿勢を予測することである。以下、この点を説明する。
<初期値の予測>
図10は、図1の位置推定システム115によって過去に得られた移動体10の位置および姿勢の履歴と、現在の位置および姿勢の予測値を模式的に示す図である。位置および姿勢の履歴は、位置推定システム115の内部のメモリ107に記憶される。このような履歴の一部または全部は、位置推定装置105の外部の記憶装置、たとえば図1の記憶装置104に記憶されていても良い。
図10には、移動体10のローカル座標系(センサ座標系)であるUV座標系も示されている。スキャンデータは、UV座標系によって表現される。環境地図M上における移動体10の位置は、環境地図Mの座標系におけるUV座標系の原点の座標値(xi,yi)である。移動体10の姿勢(向き)は、環境地図Mの座標系に対するUV座標系の向き(θi)である。θiは半時計回りを「正」とする。
本開示の実施形態では、位置推定装置によって過去に得られた位置および姿勢の履歴から、現在の位置および姿勢の予測値を算出する。
前回のマッチングによって得られた移動体の位置および姿勢を(xi-1,yi-1,θi-1)、さらにその前のマッチングによって得られた移動体の位置および姿勢を(xi-2,yi-2,θi-2)とする。また、現在の移動体の位置および姿勢の予測値を(xi,yi,θi)とする。このとき、以下の仮定が成立するとする。
仮定1:位置(xi-1,yi-1)から位置(xi,yi)までの移動に要する時間は、位置(xi-2,yi-2)から位置(xi-1,yi-1)までの移動に要した時間に等しい。
仮定2:位置(xi-1,yi-1)から位置(xi,yi)までの移動時の移動速度は、位置(xi-2,yi-2)から位置(xi-1,yi-1)までの移動時の移動速度に等しい。
仮定3:θi−θi-1は、Δθ=θyi−θi-1に等しい。
上記の過程のもと、以下の数1の式が設立する。
Figure 0006816830
ここで、Δθは、上述の通り、θyi−θi-1である。
移動体の姿勢(向き)については、仮定3から、以下の数2の関係が成立する。
(数2)
θi=θi-1+Δθ
なお、Δθがゼロであるとの近似を行うと、数2の右辺第2項の行列は単位行列として計算が単純化され得る。
上記の仮定1が成立しない場合、位置(xi-1,yi-1)から位置(xi,yi)までの移動に要する時間をΔt、位置(xi-2,yi-2)から位置(xi-1,yi-1)までの移動に要した時間をΔsとする。この場合、数1の右辺における(xi-1−xi-2)および(yi-1−yi-2)を、それぞれ、Δt/Δs倍する補正と、数1の右辺の行列におけるΔθをΔt/Δs倍する補正を行えばよい。
<位置推定システムの動作フロー>
図1、図11から図13を参照しながら、本開示の実施形態における位置推定システムの動作フローを説明する。
まず、図11を参照する。
ステップS10において、位置推定システム115のプロセッサ106は、外界センサ102から最新(現在:current)のスキャンデータを取得する。
ステップS12において、プロセッサ106は、オドメトリによって現在の位置および姿勢の値を取得する。
ステップS14において、プロセッサ106は、オドメトリから取得した現在の位置および姿勢の値を初期値として、参照地図に対する最新スキャンデータの初期位置合わせを行う。
ステップS16において、プロセッサ106は、ICPアルゴリズムによる位置ずれ補正を行う。
ステップS18において、プロセッサ106は、最新スキャンデータを既存の参照地図に追加することにより、参照地図の更新を行う。
ステップS20において、参照地図が更新条件を満たしたか否かを判定する。更新条件は、前述したように、(i)参照地図を更新する回数が所定数に達したとき、(ii)参照地図のデータ量が所定量に達したとき、または(iii)前回のリセットからの経過時間が所定長さに達したとき、などの条件である。Noの場合、ステップS10に戻り、次のスキャンデータを取得する。Yesの場合は、ステップS22に進む。
ステップS22において、プロセッサ106は、複数回更新された参照地図に基づいて環境地図を更新する。
ステップS24において、プロセッサ106は、複数回更新された参照地図から、最新スキャンデータを含む一部分以外の部分を削除して、参照地図のリセットを行う。こうして、参照地図を構成する点群内の点の個数および密度を低減することができる。
次に図12を参照して、ステップS16における位置ずれ補正を説明する。
まず、ステップS32において、プロセッサ106は、2組の点群から対応点の探索を行う。具体的には、プロセッサ106は、スキャンデータに含まれる点群を構成する各点に対応する、環境地図上の点を選択する。
ステップS34において、プロセッサ106は、スキャンデータと環境地図との間にある対応点間距離を縮小するように、スキャンデータの回転および並進の剛体変換(座標変換)を行う。これは、対応点間距離、すなわち、対応点の誤差の総和(二乗和)を小さくするように、座標変換行列のパラメータを最適化することである。この最適化は反復計算によって行われる。
ステップS36において、プロセッサ106は、反復計算の結果が収束したか否かを判定する。具体的には、プロセッサ106は、座標変換行列のパラメータを変化させても対応点の誤差の総和(二乗和)の減少量が所定値を下回ったとき、収束したと判定する。収束しなかったときは、ステップS32に戻り、プロセッサ106は、対応点の探索からの処理を繰りかえす。ステップS36において、収束したと判定されたときは、ステップS38に進む。
ステップS38において、プロセッサ106は、座標変換行列を用いてスキャンデータの座標値をセンサ座標系の値から環境地図の座標系の値に変換する。こうして得たスキャンデータの座標値は、環境地図の更新に用いることができる。
次に、図13を参照して図11のフローの変形例を説明する。
図13のフローが図11のフローと異なる点は、ステップS10とステップS14との間において、プロセッサ106がステップS12に代えてステップS40を実行することにある。ステップS40では、プロセッサ106は、オドメトリから移動体10の現在の位置および姿勢の計測値を取得するのではなく、移動体10(外界センサ102)の位置および姿勢の履歴に基づいて、現在の位置および姿勢の予測値を算出する。この予測値の計算は、図10を参照しながら説明した演算によって実行することができる。こうして得た値を、位置および姿勢の初期値としてマッチングを実行する。他のステップは、前述した通りであるため、説明の繰り返しは行わない。
図13のフローによれば、ロータリエンコーダなどの内界センサの出力を用いて位置および姿勢を求める必要がなくなる。特にロータリエンコーダは、車輪がスリップしたときには大きな誤差が発生し、その誤差は累積されるため、測定値の信頼度が低い。さらにロータリエンコーダによる測定は、メカナムホイールなどの全方位ホイール、二足または多足歩行装置を用いて移動する移動体、あるいは、バークラフトおよびドローンなどの飛行体には適用できない。これに対して、本開示による位置推定システムは、多用な駆動装置によって移動する種々の移動体に適用可能である。
本開示における位置推定システムは、駆動装置を備えた移動体に搭載されて使用されなくてもよい。たとえばユーザによって駆動される手押し車に載せられて地図作成に用いられてもよい。
<例示的な実施形態>
以下、本開示による位置推定システムを備える移動体の実施形態をより詳細に説明する。本実施形態では、移動体の一例として無人搬送車を挙げる。以下の説明では、略語を用いて、無人搬送車を「AGV:Automatic Guided Vehicle」と記述する。以下、「AGV」についても、移動体10と同様に参照符号「10」を付す。
(1)システムの基本構成
図14は、本開示による例示的な移動体管理システム100の基本構成例を示している。移動体管理システム100は、少なくとも1台のAGV10と、AGV10の運行管理を行う運行管理装置50とを含む。図14には、ユーザ1によって操作される端末装置20も記載されている。
AGV10は、走行に磁気テープなどの誘導体が不要な「ガイドレス式」走行が可能な無人搬送台車である。AGV10は、自己位置推定を行い、推定の結果を端末装置20および運行管理装置50に送信することができる。AGV10は、運行管理装置50からの指令にしたがって環境S内を自動走行することが可能である。
運行管理装置50は各AGV10の位置をトラッキングし、各AGV10の走行を管理するコンピュータシステムである。運行管理装置50は、デスクトップ型PC、ノート型PC、および/または、サーバコンピュータであり得る。運行管理装置50は、複数のアクセスポイント2を介して、各AGV10と通信する。たとえば、運行管理装置50は、各AGV10が次に向かうべき位置の座標のデータを各AGV10に送信する。各AGV10は、定期的に、たとえば250ミリ秒ごとに自身の位置および姿勢(orientation)を示すデータを運行管理装置50に送信する。指示した位置にAGV10が到達すると、運行管理装置50は、さらに次に向かうべき位置の座標のデータを送信する。AGV10は、端末装置20に入力されたユーザ1の操作に応じて環境S内を走行することも可能である。端末装置20の一例はタブレットコンピュータである。
図15は、3台のAGV10a,10bおよび10cが存在する環境Sの一例を示している。いずれのAGVも図中の奥行き方向に走行しているとする。AGV10aおよび10bは天板に載置された荷物を搬送中である。AGV10cは、前方のAGV10bに追従して走行している。なお、説明の便宜のため、図15では参照符号10a,10bおよび10cを付したが、以下では、「AGV10」と記述する。
AGV10は、天板に載置された荷物を搬送する方法以外に、自身と接続された牽引台車を利用して荷物を搬送することも可能である。図16は接続される前のAGV10および牽引台車5を示している。牽引台車5の各足にはキャスターが設けられている。AGV10は牽引台車5と機械的に接続される。図17は、接続されたAGV10および牽引台車5を示している。AGV10が走行すると、牽引台車5はAGV10に牽引される。牽引台車5を牽引することにより、AGV10は、牽引台車5に載置された荷物を搬送できる。
AGV10と牽引台車5との接続方法は任意である。ここでは一例を説明する。AGV10の天板にはプレート6が固定されている。牽引台車5には、スリットを有するガイド7が設けられている。AGV10は牽引台車5に接近し、プレート6をガイド7のスリットに差し込む。差し込みが完了すると、AGV10は、図示されない電磁ロック式ピンをプレート6およびガイド7に貫通させ、電磁ロックをかける。これにより、AGV10と牽引台車5とが物理的に接続される。
再び図14を参照する。各AGV10と端末装置20とは、たとえば1対1で接続されてBluetooth(登録商標)規格に準拠した通信を行うことができる。各AGV10と端末装置20とは、1または複数のアクセスポイント2を利用してWi−Fi(登録商標)に準拠した通信を行うこともできる。複数のアクセスポイント2は、たとえばスイッチングハブ3を介して互いに接続されている。図14には2台のアクセスポイント2a,2bが記載されている。AGV10はアクセスポイント2aと無線で接続されている。端末装置20はアクセスポイント2bと無線で接続されている。AGV10が送信したデータはアクセスポイント2aで受信された後、スイッチングハブ3を介してアクセスポイント2bに転送され、アクセスポイント2bから端末装置20に送信される。また、端末装置20が送信したデータは、アクセスポイント2bで受信された後、スイッチングハブ3を介してアクセスポイント2aに転送され、アクセスポイント2aからAGV10に送信される。これにより、AGV10および端末装置20の間の双方向通信が実現される。複数のアクセスポイント2はスイッチングハブ3を介して運行管理装置50とも接続されている。これにより、運行管理装置50と各AGV10との間でも双方向通信が実現される。
(2)環境地図の作成
自己位置を推定しながらAGV10が走行できるようにするため、環境S内の地図が作成される。AGV10には位置推定装置およびLRFが搭載されており、LRFの出力を利用して地図を作成できる。
AGV10は、ユーザの操作によってデータ取得モードに遷移する。データ取得モードにおいて、AGV10はLRFを用いたセンサデータ(スキャンデータ)の取得を開始する。その後の処理は、前述した通りである。
なお、センサデータを取得するための環境S内の移動は、ユーザの操作にしたがってAGV10が走行することによって実現し得る。たとえば、AGV10は、端末装置20を介して無線でユーザから前後左右の各方向への移動を指示する走行指令を受け取る。AGV10は走行指令にしたがって環境S内を前後左右に走行し、地図を作成する。AGV10がジョイスティック等の操縦装置と有線で接続されている場合には、当該操縦装置からの制御信号にしたがって環境S内を前後左右に走行し、地図を作成してもよい。LRFを搭載した計測台車を人が押し歩くことによってセンサデータを取得してもよい。
なお、図14および図15には複数台のAGV10が示されているが、AGVは1台であってもよい。複数台のAGV10が存在する場合、ユーザ1は端末装置20を利用して、登録された複数のAGVのうちから一台のAGV10を選択して、環境Sの地図を作成させることができる。
地図が作成されると、以後、各AGV10は当該地図を利用して自己位置を推定しながら自動走行することができる。
(3)AGVの構成
図18は、本実施形態にかかる例示的なAGV10の外観図である。AGV10は、2つの駆動輪11aおよび11bと、4つのキャスター11c、11d、11eおよび11fと、フレーム12と、搬送テーブル13と、走行制御装置14と、LRF15とを有する。2つの駆動輪11aおよび11bは、AGV10の右側および左側にそれぞれ設けられている。4つのキャスター11c、11d、11eおよび11fは、AGV10の4隅に配置されている。なお、AGV10は、2つの駆動輪11aおよび11bに接続される複数のモータも有するが、複数のモータは図18には示されていない。また、図18には、AGV10の右側に位置する1つの駆動輪11aおよび2つのキャスター11cおよび11eと、左後部に位置するキャスター11fとが示されているが、左側の駆動輪11bおよび左前部のキャスター11dはフレーム12の蔭に隠れているため明示されていない。4つのキャスター11c、11d、11eおよび11fは、自由に旋回することができる。以下の説明では、駆動輪11aおよび駆動輪11bを、それぞれ車輪11aおよび車輪11bとも称する。
走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、端末装置20とのデータの送受信、および、前処理演算を行う。
LRF15は、たとえば赤外のレーザビーム15aを放射し、当該レーザビーム15aの反射光を検出することにより、反射点までの距離を測定する光学機器である。本実施形態では、AGV10のLRF15は、たとえばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザビーム15aを放射し、各レーザビーム15aの反射光を検出する。これにより、0.25度ごと、合計1081ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。なお、本実施形態では、LRF15が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかしながら、LRF15は高さ方向のスキャンを行ってもよい。
AGV10の位置および姿勢(向き)と、LRF15のスキャン結果とにより、AGV10は、環境Sの地図を作成することができる。地図には、AGVの周囲の壁、柱等の構造物、床の上に載置された物体の配置が反映され得る。地図のデータは、AGV10内に設けられた記憶装置に格納される。
AGV10の位置および姿勢、すなわちポーズ(x,y,θ)を、以下、単に「位置」と呼ぶことがある。
走行制御装置14は、前述したようにして、LRF15の測定結果と、自身が保持する地図データとを比較して、自身の現在位置を推定する。地図データは、他のAGV10が作成した地図データであってもよい。
図19Aは、AGV10の第1のハードウェア構成例を示している。また図19Aは、走行制御装置14の具体的な構成も示している。
AGV10は、走行制御装置14と、LRF15と、2台のモータ16aおよび16bと、駆動装置17と、車輪11aおよび11bとを備えている。
走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dと、位置推定装置14eとを有している。マイコン14a、メモリ14b、記憶装置14c、通信回路14dおよび位置推定装置14eは通信バス14fで接続されており、相互にデータを授受することが可能である。LRF15もまた通信インタフェース(図示せず)を介して通信バス14fに接続されており、計測結果である計測データを、マイコン14a、位置推定装置14eおよび/またはメモリ14bに送信する。
マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行うプロセッサまたは制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、制御信号であるPWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータに印加する電圧を調整させる。これによりモータ16aおよび16bの各々が所望の回転速度で回転する。
左右のモータ16aおよび16bの駆動を制御する1つ以上の制御回路(たとえばマイコン)を、マイコン14aとは独立して設けてもよい。たとえば、モータ駆動装置17が、モータ16aおよび16bの駆動をそれぞれ制御する2つのマイコンを備えていてもよい。
メモリ14bは、マイコン14aが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ14bは、マイコン14aおよび位置推定装置14eが演算を行う際のワークメモリとしても利用され得る。
記憶装置14cは、不揮発性の半導体メモリ装置である。ただし、記憶装置14cは、ハードディスクに代表される磁気記録媒体、または、光ディスクに代表される光学式記録媒体であってもよい。さらに、記憶装置14cは、いずれかの記録媒体にデータを書き込みおよび/または読み出すためのヘッド装置および当該ヘッド装置の制御装置を含んでもよい。
記憶装置14cは、走行する環境Sの環境地図M、および、1または複数の走行経路のデータ(走行経路データ)Rを記憶する。環境地図Mは、AGV10が地図作成モードで動作することによって作成され記憶装置14cに記憶される。走行経路データRは、環境地図Mが作成された後に外部から送信される。本実施形態では、環境地図Mおよび走行経路データRは同じ記憶装置14cに記憶されているが、異なる記憶装置に記憶されてもよい。
走行経路データRの例を説明する。
端末装置20がタブレットコンピュータである場合には、AGV10はタブレットコンピュータから走行経路を示す走行経路データRを受信する。このときの走行経路データRは、複数のマーカの位置を示すマーカデータを含む。「マーカ」は走行するAGV10の通過位置(経由点)を示す。走行経路データRは、走行開始位置を示す開始マーカおよび走行終了位置を示す終了マーカの位置情報を少なくとも含む。走行経路データRは、さらに、1以上の中間経由点のマーカの位置情報を含んでもよい。走行経路が1以上の中間経由点を含む場合には、開始マーカから、当該走行経由点を順に経由して終了マーカに至る経路が、走行経路として定義される。各マーカのデータは、そのマーカの座標データに加えて、次のマーカに移動するまでのAGV10の向き(角度)および走行速度のデータを含み得る。AGV10が各マーカの位置で一旦停止し、自己位置推定および端末装置20への通知などを行う場合には、各マーカのデータは、当該走行速度に達するまでの加速に要する加速時間、および/または、当該走行速度から次のマーカの位置で停止するまでの減速に要する減速時間のデータを含み得る。
端末装置20ではなく運行管理装置50(たとえば、PCおよび/またはサーバコンピュータ)がAGV10の移動を制御してもよい。その場合には、運行管理装置50は、AGV10がマーカに到達する度に、次のマーカへの移動をAGV10に指示してもよい。たとえば、AGV10は、運行管理装置50から、次に向かうべき目的位置の座標データ、または、当該目的位置までの距離および進むべき角度のデータを、走行経路を示す走行経路データRとして受信する。
AGV10は、作成された地図と走行中に取得されたLRF15が出力したセンサデータとを利用して自己位置を推定しながら、記憶された走行経路に沿って走行することができる。
通信回路14dは、たとえば、Bluetooth(登録商標)および/またはWi−Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。いずれの規格も、2.4GHz帯の周波数を利用した無線通信規格を含む。たとえばAGV10を走行させて地図を作成するモードでは、通信回路14dは、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1で端末装置20と通信する。
位置推定装置14eは、地図の作成処理、および、走行時には自己位置の推定処理を行う。位置推定装置14eは、AGV10の位置および姿勢とLRFのスキャン結果とにより、環境Sの地図を作成する。走行時には、位置推定装置14eは、LRF15からセンサデータを受け取り、また、記憶装置14cに記憶された環境地図Mを読み出す。LRF15のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の環境地図Mとのマッチングを行うことにより、環境地図M上における自己位置(x,y,θ)を同定する。位置推定装置14eは、局所的地図データが環境地図Mに一致した程度を表す「信頼度」のデータを生成する。自己位置(x,y,θ)、および、信頼度の各データは、AGV10から端末装置20または運行管理装置50に送信され得る。端末装置20または運行管理装置50は、自己位置(x,y,θ)、および、信頼度の各データを受信して、内蔵または接続された表示装置に表示することができる。
本実施形態では、マイコン14aと位置推定装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび位置推定装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路であってもよい。図19Aには、マイコン14aおよび位置推定装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび位置推定装置14eが別個独立に設けられている例を説明する。
2台のモータ16aおよび16bは、それぞれ2つの車輪11aおよび11bに取り付けられ、各車輪を回転させる。つまり、2つの車輪11aおよび11bはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪および左輪を駆動するモータであるとして説明する。
移動体10は、さらに、車輪11aおよび11bの回転位置または回転速度を測定するロータリエンコーダをさらに備えていてもよい。マイコン14aは、位置推定装置14eから受信した信号だけでなく、ロータリエンコーダから受信した信号を利用して移動体10の位置および姿勢を推定してもよい。
駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路を含む。モータ駆動回路17aおよび17bは、マイコン14aまたはモータ駆動回路17a内のマイコンから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに印加される電圧を調整する。
図19Bは、AGV10の第2のハードウェア構成例を示している。第2のハードウェア構成例は、レーザ測位システム14hを有する点、および、マイコン14aが各構成要素と1対1で接続されている点において、第1のハードウェア構成例(図19A)と相違する。
レーザ測位システム14hは、位置推定装置14eおよびLRF15を有する。位置推定装置14eおよびLRF15は、たとえばイーサネット(登録商標)ケーブルで接続されている。位置推定装置14eおよびLRF15の各動作は上述した通りである。レーザ測位システム14hは、AGV10のポーズ(x,y,θ)を示す情報をマイコン14aに出力する。
マイコン14aは、種々の汎用I/Oインタフェースまたは汎用入出力ポート(図示せず)を有している。マイコン14aは、通信回路14d、レーザ測位システム14h等の、走行制御装置14内の他の構成要素と、当該汎用入出力ポートを介して直接接続されている。
図19Bに関して上述した構成以外は、図19Aの構成と共通である。よって共通の構成の説明は省略する。
本開示の実施形態におけるAGV10は、図示されていない障害物検知センサおよびバンパースイッチなどのセーフティセンサを備えていてもよい。
(4)運行管理装置の構成例
図20は、運行管理装置50のハードウェア構成例を示している。運行管理装置50は、CPU51と、メモリ52と、位置データベース(位置DB)53と、通信回路54と、地図データベース(地図DB)55と、画像処理回路56とを有する。
CPU51、メモリ52、位置DB53、通信回路54、地図DB55および画像処理回路56は通信バス57で接続されており、相互にデータを授受することが可能である。
CPU51は、運行管理装置50の動作を制御する信号処理回路(コンピュータ)である。典型的にはCPU51は半導体集積回路である。
メモリ52は、CPU51が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ52は、CPU51が演算を行う際のワークメモリとしても利用され得る。
位置DB53は、各AGV10の行き先となり得る各位置を示す位置データを格納する。位置データは、たとえば管理者によって工場内に仮想的に設定された座標によって表され得る。位置データは管理者によって決定される。
通信回路54は、たとえばイーサネット(登録商標)規格に準拠した有線通信を行う。通信回路54はアクセスポイント2(図14)と有線で接続されており、アクセスポイント2を介して、AGV10と通信することができる。通信回路54は、AGV10に送信すべきデータを、バス57を介してCPU51から受信する。また通信回路54は、AGV10から受信したデータ(通知)を、バス57を介してCPU51および/またはメモリ52に送信する。
地図DB55は、AGV10が走行する工場等の内部の地図のデータを格納する。各AGV10の位置と1対1で対応関係を有する地図であれば、データの形式は問わない。たとえば地図DB55に格納される地図は、CADによって作成された地図であってもよい。
位置DB53および地図DB55は、不揮発性の半導体メモリ上に構築されてもよいし、ハードディスクに代表される磁気記録媒体、または光ディスクに代表される光学式記録媒体上に構築されてもよい。
画像処理回路56はモニタ58に表示される映像のデータを生成する回路である。画像処理回路56は、専ら、管理者が運行管理装置50を操作する際に動作する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ58は運行管理装置50と一体化されていてもよい。また画像処理回路56の処理をCPU51が行ってもよい。
上述の実施形態の説明では、一例として二次元空間(床面)を走行するAGVを挙げた。しかしながら本開示は三次元空間を移動する移動体、たとえば飛行体(ドローン)、にも適用され得る。ドローンが飛行しながら三次元空間地図を作成する場合には、二次元空間を三次元空間に拡張することができる。
上記の包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラム、または記録媒体によって実現されてもよい。あるいは、システム、装置、方法、集積回路、コンピュータプログラム、および記録媒体の任意な組み合わせによって実現されてもよい。
本開示の移動体は、工場、倉庫、建設現場、物流、病院などで荷物、部品、完成品などの物の移動および搬送に好適に利用され得る。
1・・・ユーザ、2a、2b・・・アクセスポイント、10・・・AGV(移動体)、11a、11b・・・駆動輪(車輪)、11c、11d、11e、11f・・・キャスター、12・・・フレーム、13・・・搬送テーブル、14・・・走行制御装置、14a・・・マイコン、14b・・・メモリ、14c・・・記憶装置、14d・・・通信回路、14e・・・位置推定装置、16a、16b・・・モータ、15・・・レーザレンジファインダ、17a、17b・・・モータ駆動回路、20・・・端末装置(タブレットコンピュータなどのモバイルコンピュータ)、50・・・運行管理装置、51・・・CPU、52・・・メモリ、53・・・位置データベース(位置DB)、54・・・通信回路、55・・・地図データベース(地図DB)、56・・・画像処理回路、100・・・移動体管理システム

Claims (13)

  1. 環境をスキャンしてスキャンデータを周期的に出力する外界センサに接続されて使用される位置推定システムであって、
    プロセッサと、
    前記プロセッサを動作させるコンピュータプログラムを記憶するメモリと、
    を備え、
    前記プロセッサは、前記コンピュータプログラムの指令にしたがって、
    前記外界センサから前記スキャンデータを取得し、前記スキャンデータから参照地図を作成すること、
    前記外界センサから前記スキャンデータを新たに取得したとき、新たに取得した最新スキャンデータと前記参照地図とのマッチングを行うことにより、前記参照地図上における前記外界センサの位置および姿勢を推定し、前記最新スキャンデータを前記参照地図に追加して前記参照地図を更新すること、
    複数回更新された参照地図から、前記最新スキャンデータを含む一部分以外の部分を削除して、前記参照地図のリセットを行うこと、および、
    前記リセットを行うとき、前記リセット前の前記複数回更新された参照地図に基づいて環境地図を更新すること、
    を実行する、位置推定システム。
  2. 前記プロセッサは、前記参照地図を更新する回数が所定数に達したとき、前記参照地図のリセットを行う、請求項1に記載の位置推定システム。
  3. 前記プロセッサは、前記参照地図のデータ量が所定量に達したとき、前記参照地図のリセットを行う、請求項1に記載の位置推定システム。
  4. 前記プロセッサは、前回の前記リセットからの経過時間が所定長さに達したとき、前記参照地図のリセットを行う、請求項1に記載の位置推定システム。
  5. 前記環境地図を更新するとき、前記リセット前の前記複数回更新された参照地図と前記環境地図とのマッチングを行い、前記参照地図を前記環境地図に整合させる、請求項1から4のいずれかに記載の位置推定システム。
  6. 前記プロセッサは、反復最近接点アルゴリズムによって前記マッチングを行う、請求項1から5のいずれかに記載の位置推定システム。
  7. 前記プロセッサは、前記スキャンデータおよび/または前記参照地図を構成する点群の密度を所定密度以下に低下させる処理を行う、請求項1から6のいずれかに記載の位置推定システム。
  8. 前記プロセッサは、内界センサの出力に基づいて前記外界センサの移動量を測定し、
    前記マッチングを行うときに用いる前記外界センサの前記位置および前記姿勢の初期値を、前記外界センサの移動量に基づいて決定する、請求項1から7のいずれかに記載の位置推定システム。
  9. 前記プロセッサは、前記外界センサの位置および姿勢の履歴に基づいて、前記外界センサの現在の位置および姿勢の予測値を算出し、
    前記マッチングを行うときに用いる前記外界センサの前記位置および前記姿勢の初期値として前記予測値を用いる、請求項1から7のいずれかに記載の位置推定システム。
  10. 請求項1から9のいずれかに記載の位置推定システムと、
    前記外界センサと、
    前記位置推定システムが作成した前記環境地図を記憶する記憶装置と、
    移動のための駆動装置と、
    を備える移動体。
  11. 内界センサをさらに備える、請求項10に記載の移動体。
  12. 前記プロセッサは、前記外界センサから前記スキャンデータを取得し、前記スキャンデータと前記記憶装置から読み出した前記環境地図とのマッチングを行うことにより、前記移動体の前記環境地図上における位置および姿勢を推定する、請求項10または11に記載の移動体。
  13. 請求項1から9のいずれかに記載の位置推定システムに使用されるコンピュータプログラム。
JP2019539338A 2017-09-04 2018-08-14 位置推定システム、および当該位置推定システムを備える移動体 Expired - Fee Related JP6816830B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017169728 2017-09-04
JP2017169728 2017-09-04
PCT/JP2018/030308 WO2019044500A1 (ja) 2017-09-04 2018-08-14 位置推定システム、および当該位置推定システムを備える移動体

Publications (2)

Publication Number Publication Date
JPWO2019044500A1 JPWO2019044500A1 (ja) 2020-10-01
JP6816830B2 true JP6816830B2 (ja) 2021-01-20

Family

ID=65525343

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019539338A Expired - Fee Related JP6816830B2 (ja) 2017-09-04 2018-08-14 位置推定システム、および当該位置推定システムを備える移動体

Country Status (4)

Country Link
US (1) US20200264616A1 (ja)
JP (1) JP6816830B2 (ja)
CN (1) CN110998473A (ja)
WO (1) WO2019044500A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7353747B2 (ja) * 2018-01-12 2023-10-02 キヤノン株式会社 情報処理装置、システム、方法、およびプログラム
US11835960B2 (en) * 2019-01-28 2023-12-05 Zebra Technologies Corporation System and method for semantically identifying one or more of an object and a location in a robotic environment
JP6991489B2 (ja) * 2019-03-29 2022-01-12 国立大学法人東海国立大学機構 地図評価装置、地図評価方法および地図評価プログラム
WO2020235392A1 (ja) * 2019-05-17 2020-11-26 村田機械株式会社 搬送車システム、搬送車、及び、制御方法
JP7318522B2 (ja) * 2019-12-25 2023-08-01 株式会社デンソー 推定装置、推定方法、推定プログラム
JP7318521B2 (ja) * 2019-12-25 2023-08-01 株式会社デンソー 推定装置、推定方法、推定プログラム
JP7322799B2 (ja) * 2020-05-01 2023-08-08 株式会社豊田自動織機 自己位置推定装置
JP7538056B2 (ja) * 2021-01-27 2024-08-21 三菱電機株式会社 点群削減装置及び点群削減プログラム
US11787649B2 (en) * 2021-04-07 2023-10-17 Rockwell Automation Technologies, Inc. System and method for determining real-time orientation on carts in an independent cart system
WO2022239600A1 (ja) * 2021-05-11 2022-11-17 富士フイルム株式会社 情報処理装置、情報処理方法、及びプログラム
JP7392221B2 (ja) * 2022-03-29 2023-12-06 防衛装備庁長官 物体認識システム
WO2023233809A1 (ja) * 2022-05-30 2023-12-07 ソニーグループ株式会社 情報処理装置及び情報処理方法
JP2023182325A (ja) 2022-06-14 2023-12-26 スズキ株式会社 移動体の自己位置推定装置
CN118163794B (zh) * 2024-05-16 2024-07-16 成都睿芯行科技有限公司 一种双车联动对接方法及介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3749323B2 (ja) * 1996-11-13 2006-02-22 富士通株式会社 移動装置
JP2008250905A (ja) * 2007-03-30 2008-10-16 Sogo Keibi Hosho Co Ltd 移動ロボット、自己位置補正方法および自己位置補正プログラム
JP5276931B2 (ja) * 2008-09-05 2013-08-28 株式会社日立産機システム 移動体および移動体の位置推定誤り状態からの復帰方法
JP2010066595A (ja) * 2008-09-11 2010-03-25 Toyota Motor Corp 環境地図生成装置及び環境地図生成方法
WO2011023246A1 (en) * 2009-08-25 2011-03-03 Tele Atlas B.V. A vehicle navigation system and method
TWI391874B (zh) * 2009-11-24 2013-04-01 Ind Tech Res Inst 地圖建置方法與裝置以及利用該地圖的定位方法
WO2012176249A1 (ja) * 2011-06-21 2012-12-27 国立大学法人奈良先端科学技術大学院大学 自己位置推定装置、自己位置推定方法、自己位置推定プログラム、及び移動体
JP5429901B2 (ja) * 2012-02-08 2014-02-26 富士ソフト株式会社 ロボット及び情報処理装置のプログラム
WO2015151770A1 (ja) * 2014-03-31 2015-10-08 株式会社日立産機システム 三次元地図生成システム
CN105093925B (zh) * 2015-07-15 2020-11-03 山东理工大学 一种基于被测地形特点的机载激光雷达参数实时自适应调整方法
JP6849330B2 (ja) * 2015-08-28 2021-03-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 地図生成方法、自己位置推定方法、ロボットシステム、およびロボット
EP3144765B1 (en) * 2015-09-18 2020-01-08 Samsung Electronics Co., Ltd. Apparatus for localizing cleaning robot, cleaning robot, and controlling method of cleaning robot
JP2017097402A (ja) * 2015-11-18 2017-06-01 株式会社明電舎 周辺地図作成方法、自己位置推定方法および自己位置推定装置
JP6288060B2 (ja) * 2015-12-10 2018-03-07 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6782903B2 (ja) * 2015-12-25 2020-11-11 学校法人千葉工業大学 自己運動推定システム、自己運動推定システムの制御方法及びプログラム
CN106767827B (zh) * 2016-12-29 2020-02-28 浙江大学 一种基于激光数据的移动机器人点云地图创建方法

Also Published As

Publication number Publication date
US20200264616A1 (en) 2020-08-20
WO2019044500A1 (ja) 2019-03-07
CN110998473A (zh) 2020-04-10
JPWO2019044500A1 (ja) 2020-10-01

Similar Documents

Publication Publication Date Title
JP6816830B2 (ja) 位置推定システム、および当該位置推定システムを備える移動体
JP6825712B2 (ja) 移動体、位置推定装置、およびコンピュータプログラム
US20200110410A1 (en) Device and method for processing map data used for self-position estimation, mobile body, and control system for mobile body
TWI665538B (zh) 進行障礙物之迴避動作的移動體及記錄其之電腦程式的記錄媒體
JP2019168942A (ja) 移動体、管理装置および移動体システム
JP7111424B2 (ja) 移動体、位置推定装置、およびコンピュータプログラム
JP7081881B2 (ja) 移動体および移動体システム
JP7136426B2 (ja) 管理装置および移動体システム
CN111971633B (zh) 位置推断系统、具有该位置推断系统的移动体以及记录介质
JP7164085B2 (ja) 移動体を用いたワークの搬送方法、コンピュータプログラム、および移動体
JP2019175137A (ja) 移動体および移動体システム
JP2019053391A (ja) 移動体
WO2019054209A1 (ja) 地図作成システムおよび地図作成装置
JP2019175136A (ja) 移動体
JP2020166702A (ja) 移動体システム、地図作成システム、経路作成プログラムおよび地図作成プログラム
JP2019067001A (ja) 移動体
WO2020213645A1 (ja) 地図作成システム、信号処理回路、移動体および地図作成方法
JP2019148871A (ja) 移動体および移動体システム
JPWO2019059299A1 (ja) 運行管理装置
JP2020166701A (ja) 移動体およびコンピュータプログラム
JP2019175138A (ja) 移動体および管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201207

R151 Written notification of patent or utility model registration

Ref document number: 6816830

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees