IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニチユ三菱フォークリフト株式会社の特許一覧

特許7144491フォークリフト、位置推定方法、及びプログラム
<>
  • 特許-フォークリフト、位置推定方法、及びプログラム 図1
  • 特許-フォークリフト、位置推定方法、及びプログラム 図2
  • 特許-フォークリフト、位置推定方法、及びプログラム 図3
  • 特許-フォークリフト、位置推定方法、及びプログラム 図4
  • 特許-フォークリフト、位置推定方法、及びプログラム 図5
  • 特許-フォークリフト、位置推定方法、及びプログラム 図6
  • 特許-フォークリフト、位置推定方法、及びプログラム 図7
  • 特許-フォークリフト、位置推定方法、及びプログラム 図8
  • 特許-フォークリフト、位置推定方法、及びプログラム 図9
  • 特許-フォークリフト、位置推定方法、及びプログラム 図10
  • 特許-フォークリフト、位置推定方法、及びプログラム 図11
  • 特許-フォークリフト、位置推定方法、及びプログラム 図12
  • 特許-フォークリフト、位置推定方法、及びプログラム 図13
  • 特許-フォークリフト、位置推定方法、及びプログラム 図14
  • 特許-フォークリフト、位置推定方法、及びプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-20
(45)【発行日】2022-09-29
(54)【発明の名称】フォークリフト、位置推定方法、及びプログラム
(51)【国際特許分類】
   G05D 1/02 20200101AFI20220921BHJP
   B66F 9/24 20060101ALI20220921BHJP
【FI】
G05D1/02 J
B66F9/24 A
【請求項の数】 10
(21)【出願番号】P 2020138765
(22)【出願日】2020-08-19
(65)【公開番号】P2022034861
(43)【公開日】2022-03-04
【審査請求日】2021-03-31
(73)【特許権者】
【識別番号】000232807
【氏名又は名称】三菱ロジスネクスト株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】松本 知浩
(72)【発明者】
【氏名】木内 裕介
(72)【発明者】
【氏名】北島 克将
(72)【発明者】
【氏名】藤田 匠
【審査官】今井 貞雄
(56)【参考文献】
【文献】特許第6711555(JP,B1)
【文献】国際公開第2019/187816(WO,A1)
【文献】特開2019-159354(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
車体に設けられた撮影装置が撮影した画像から特徴点を取得する特徴点取得部と、
前記特徴点取得部が取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するマップマッチング処理部と、
前記特徴点取得部が取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行する位置推定部と、
前記特徴点取得部が取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替える切替部と、
を備え
前記作業領域は、前記地図データを作成済みの第1領域と、前記地図データを未作成の第2領域とを含み、
前記切替部は、前記マップマッチング処理部により推定された前記位置が前記第2領域に含まれる場合、前記第1処理から前記第2処理に切り替え、
前記位置推定部は、
前記マップマッチング処理部により推定された前記位置が前記第1領域に含まれ、且つ、前記第1領域と前記第2領域との境界から所定範囲以内に含まれている場合、前記特徴点取得部が取得した前記特徴点と、前記地図データとに基づいて、前記特徴点間の距離、又は前記撮影装置から前記特徴点までの距離を位置推定用のスケールとして計算し、
前記第2処理を実行する際に、前記スケールを使用して前記車体の位置を推定する、
フォークリフト。
【請求項2】
前記マップマッチング処理部は、前記特徴点取得部が取得した前記特徴点の数、及び当該特徴点と前記地図データの特徴点との一致度合いに基づくスコアを前記照合結果として算出し、
前記切替部は、前記スコアが閾値未満である場合、前記マップマッチング処理部による前記第1処理から、前記位置推定部による前記第2処理に切り替える、
請求項1に記載のフォークリフト。
【請求項3】
前記撮影装置が撮影した画像からマーカを検出し、前記マーカに基づいて前記車体の位置を推定する第3処理を実行するマーカ処理部を更に備え、
前記切替部は、前記画像から前記マーカが検出された場合、前記第1処理又は前記第2処理から前記第3処理に切り替える、
請求項1又は2に記載のフォークリフト。
【請求項4】
前記マーカ処理部は、前記画像に複数の前記マーカが含まれている場合、前記画像の中心に最も近いマーカに基づいて、前記車体の位置を推定する、
請求項に記載のフォークリフト。
【請求項5】
前記マーカ処理部は、前記画像に複数の前記マーカが含まれている場合、前記マーカそれぞれから推定される位置について、前記画像の中心からの距離に応じて重み付け平均して、前記車体の位置を推定する、
請求項に記載のフォークリフト。
【請求項6】
前記車体に設けられたセンサから取得したセンサ値から推測される車速、操舵角及びヨーレートに基づいてオドメトリ計算を行い、前記車体の位置を推定する第4処理を実行するオドメトリ処理部を更に備え、
前記切替部は、前記特徴点取得部が取得した前記特徴点の数が所定数未満である場合、前記第2処理から前記第4処理に切り替える、
請求項1からの何れか一項に記載のフォークリフト。
【請求項7】
フォークリフトの車体に設けられた撮影装置が撮影した画像から特徴点を取得するステップと、
取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するステップと、
取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行するステップと、
取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替えるステップと、
を有し、
前記作業領域は、前記地図データを作成済みの第1領域と、前記地図データを未作成の第2領域とを含み、
前記第1処理から前記第2処理に切り替えるステップは、前前記第1処理により推定された前記位置が前記第2領域に含まれる場合、前記第1処理から前記第2処理に切り替え、
前記第2処理を実行するステップは、
前記第1処理により推定された前記位置が前記第1領域に含まれ、且つ、前記第1領域と前記第2領域との境界から所定範囲以内に含まれている場合、前記画像から取得した前記特徴点と、前記地図データとに基づいて、前記特徴点間の距離、又は前記撮影装置から前記特徴点までの距離を位置推定用のスケールとして計算し、
前記第2処理を実行する際に、前記スケールを使用して前記車体の位置を推定する、
位置推定方法。
【請求項8】
フォークリフトの車体に設けられた撮影装置が撮影した画像から特徴点を取得するステップと、
取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するステップと、
取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行するステップと、
取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替えるステップと、
をフォークリフトのコンピュータに実行させるプログラムであって、
前記作業領域は、前記地図データを作成済みの第1領域と、前記地図データを未作成の第2領域とを含み、
前記第1処理から前記第2処理に切り替えるステップは、前記第1処理により推定された前記位置が前記第2領域に含まれる場合、前記第1処理から前記第2処理に切り替え、
前記第2処理を実行するステップは、
前記第1処理により推定された前記位置が前記第1領域に含まれ、且つ、前記第1領域と前記第2領域との境界から所定範囲以内に含まれている場合、前記画像から取得した前記特徴点と、前記地図データとに基づいて、前記特徴点間の距離、又は前記撮影装置から前記特徴点までの距離を位置推定用のスケールとして計算し、
前記第2処理を実行する際に、前記スケールを使用して前記車体の位置を推定する、
プログラム
【請求項9】
車体に設けられた撮影装置が撮影した画像から特徴点を取得する特徴点取得部と、
前記特徴点取得部が取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するマップマッチング処理部と、
前記特徴点取得部が取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行する位置推定部と、
前記特徴点取得部が取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替える切替部と、
前記撮影装置が撮影した画像からマーカを検出し、前記マーカに基づいて前記車体の位置を推定する第3処理を実行するマーカ処理部と、
を備え、
前記切替部は、前記画像から前記マーカが検出された場合、前記第1処理又は前記第2処理から前記第3処理に切り替え、
前記マーカ処理部は、前記画像に複数の前記マーカが含まれている場合、前記画像の中心に最も近いマーカに基づいて、前記車体の位置を推定する、
フォークリフト。
【請求項10】
車体に設けられた撮影装置が撮影した画像から特徴点を取得する特徴点取得部と、
前記特徴点取得部が取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するマップマッチング処理部と、
前記特徴点取得部が取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行する位置推定部と、
前記特徴点取得部が取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替える切替部と、
前記撮影装置が撮影した画像からマーカを検出し、前記マーカに基づいて前記車体の位置を推定する第3処理を実行するマーカ処理部と、
を備え、
前記マーカ処理部は、前記画像に複数の前記マーカが含まれている場合、前記マーカそれぞれから推定される位置について、前記画像の中心からの距離に応じて重み付け平均して、前記車体の位置を推定する、
フォークリフト。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、フォークリフト、位置推定方法、及びプログラムに関する。
【背景技術】
【0002】
移動体が自己位置を推定する技術として、例えば特許文献1には、センサ情報と環境地図とを照合して自己位置を推定する方法が記載されている。
【0003】
例えば倉庫等の屋内の作業領域で運用されるフォークリフトは、運用前に取得した作業領域の環境地図と、運用時にフォークリフトが取得する環境情報とを照合させて、自己位置を推定する。環境地図として、作業領域の天井の三次元地図(地図データ)等が用いられる。地図データは、運用を開始する前に、LiDAR(Light Detection and Ranging)技術等を利用したレーザセンサ、及び画像を撮影するカメラを取り付けた地図作成用のフォークリフトを作業領域内で走行させて取得したデータに基づいて生成される。具体的には、地図データは、作業領域の各位置においてレーザセンサが取得した三次元計測データ(点群データ)、及び、カメラが撮影した天井画像から、三次元復元により生成される。
【0004】
また、実際の運用時には、フォークリフトにはカメラのみが取り付けられ、このカメラにより撮影された天井画像と、運用前に生成された地図データとを照合(マップマッチング)させて、フォークリフトの位置を推定する。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2018/179960
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、作業領域に棚、障害物等が設置されており、地図作成用のフォークリフトが走行できない場所がある場合、この場所の地図データを作成することができない。また、地図データを作成するためのデータを取得するための時間、コストが不足している場合、作業領域の主要箇所のみ地図データを作成し、他の箇所は地図データを作成しない場合がある。
【0007】
そうすると、フォークリフトは、地図データがない場所を走行した場合に、マップマッチングができず自己位置の推定が困難となる可能性がある。
【0008】
本開示は、このような課題に鑑みてなされたものであって、地図データの有無に関わらず自己位置を推定することができるフォークリフト、位置推定方法、及びプログラムを提供する。
【課題を解決するための手段】
【0009】
本開示の一態様によれば、フォークリフトは、車体に設けられた撮影装置が撮影した画像から特徴点を取得する特徴点取得部と、前記特徴点取得部が取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するマップマッチング処理部と、前記特徴点取得部が取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行する位置推定部と、前記特徴点取得部が取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替える切替部と、を備える。
【0010】
本開示の一態様によれば、位置推定方法は、フォークリフトの車体に設けられた撮影装置が撮影した画像から特徴点を取得するステップと、取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するステップと、取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行するステップと、取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替えるステップと、を有する。
【0011】
本開示の一態様によれば、プログラムは、フォークリフトの車体に設けられた撮影装置が撮影した画像から特徴点を取得するステップと、取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するステップと、取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行するステップと、取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替えるステップと、をフォークリフトのコンピュータに実行させる。
【発明の効果】
【0012】
本開示に係るフォークリフト、位置推定方法、及びプログラムによれば、地図の有無に関わらず高い精度で自己位置を推定することができる。
【図面の簡単な説明】
【0013】
図1】本開示の第1の実施形態に係るフォークリフトの全体構成を示す図である。
図2】本開示の第1の実施形態に係るフォークリフトの機能構成を示す図である。
図3】本開示の第1の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
図4】本開示の第1の実施形態に係るフォークリフトの機能を説明するための図である。
図5】本開示の第2の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
図6】本開示の第2の実施形態に係るフォークリフトの機能を説明するための図である。
図7】本開示の第3の実施形態に係るフォークリフトの機能構成を示す図である。
図8】本開示の第3の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
図9】本開示の第3の実施形態に係るマーカ処理を説明するための図である。
図10】本開示の第3の実施形態に係るマーカ配置処理の一例を示すフローチャートである。
図11】本開示の第3の実施形態に係るマーカ配置処理を説明するための第1の図である。
図12】本開示の第3の実施形態に係るマーカ配置処理を説明するための第2の図である。
図13】本開示の第4の実施形態に係るフォークリフトの機能構成を示す図である。
図14】本開示の第4の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
図15】本開示の一実施形態に係るフォークリフトのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
<第1の実施形態>
以下、本開示の第1の実施形態に係るフォークリフトについて、図1図4を参照しながら説明する。
【0015】
(フォークリフトの全体構成)
図1は、本開示の第1の実施形態に係るフォークリフトの全体構成を示す図である。
図1に示すように、本実施形態に係るフォークリフト1は、倉庫等の屋内の作業領域R0で運用される産業機械である。なお、フォークリフト1は、運転者により操作される有人フォークリフト、及び無人で自律走行を行う無人フォークリフトの何れであってもよい。
【0016】
また、フォークリフト1の車体10の上面には、撮影装置12(カメラ)が設けられている。撮影装置12は、車体10の上方に向けられており、フォークリフト1の稼働中は常時、作業領域R0の天井の画像を撮影する。フォークリフト1は、撮影装置12により撮影された画像に基づいて、自己位置を推定する。
【0017】
(フォークリフトの機能構成)
図2は、本開示の第1の実施形態に係るフォークリフトの機能構成を示す図である。
図2に示すように、フォークリフト1は、CPU11と、撮影装置12と、記憶媒体13と、通信インタフェース14とを備えている。
【0018】
CPU11は、予め用意されたプログラムに従って動作することで種々の機能を発揮し、フォークリフト1全体の動作を司るプロセッサである。CPU11は、特徴点取得部111、マップマッチング処理部112、位置推定部113、切替部114として機能する。
【0019】
特徴点取得部111は、撮影装置12が撮影した画像から特徴点を取得する。
【0020】
マップマッチング処理部112は、特徴点取得部111が取得した特徴点と、作業領域R0の特徴点を予め記録した地図データ(天井地図)とを照合して、フォークリフト1の車体10の位置を推定する第1処理を実行する。第1処理とは、マップマッチングによる位置推定処理である。
【0021】
位置推定部113は、特徴点取得部111が取得した特徴点から地図を生成しながら、フォークリフト1の車体10の位置を推定する第2処理を実行する。第2処理とは、V-SLAM(Visual Simultaneous Localization and Mapping)の技術を用いた位置推定処理である。
【0022】
切替部114は、特徴点取得部111が取得した特徴点と地図データの特徴点との照合結果が所定の条件を満たしていない場合、第1処理(マップマッチングによる位置推定処理)から第2処理(V-SLAMを用いた位置推定処理)に切り替える。即ち、切替部114は、マップマッチング処理部112が第1処理を実行するマップマッチングモードと、位置推定部113が第2処理を実行するV-SLAMモードとを切り替える。
【0023】
記憶媒体13には、作業領域R0の地図データ(天井地図)が予め記憶されている。また、記憶媒体13には、特徴点取得部111が取得した特徴点が蓄積される。
【0024】
本実施形態において、地図データは、予め地図作成用のフォークリフトにより取得されたデータに基づいて作成済みであるとする。例えば、フォークリフト1の運用を開始する前に、レーザセンサ及びカメラを有する地図作成用のフォークリフトを走行させて、作業領域R0の各位置における三次元計測データと、天井画像とを取得する。また、この三次元計測データ及び天井画像から三次元復元した三次元地図を、地図データとして記憶媒体13に記憶する。この地図データは、天井画像上に特徴点を重ね合わせたものであり、三次元計測データに基づき、画像内のスケール(特徴点間の距離、カメラから特徴点までの距離等)が特定された高精度な天井地図である。
【0025】
また、作業領域R0に棚、障害物等があり、作業領域R0内の一部の領域において、地図作成用のフォークリフトが走行できない箇所があったとする。この場合、地図データは、地図作成用のフォークリフトが走行済みの第1領域R1(図4)についてのみ作成される。地図作成用のフォークリフトが走行できなかった第2領域R2(図4)は、地図データ未作成の領域である。
【0026】
通信インタフェース14は、ネットワークNWを通じて外部のデータベース2とデータの送受信を行う。通信インタフェース14は、例えば地図データが更新された場合に、データベース2から新たな地図データを受信して、記憶媒体13に記憶するようにしてもよい。
【0027】
(フォークリフトの処理フロー)
図3は、本開示の第1の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
図4は、本開示の第1の実施形態に係るフォークリフトの機能を説明するための図である。
以下、図3図4を参照しながら、本実施形態に係るフォークリフト1の位置推定処理について詳細に説明する。
【0028】
図3に示すように、フォークリフト1の特徴点取得部111は、撮影装置12が撮影した画像に所定の画像処理を施すことにより、画像内に含まれる特徴点を取得する(ステップS101)。
【0029】
次に、マップマッチング処理部112は、特徴点取得部111が取得した特徴点と、地図データの特徴点とを照合する(ステップS102)。また、マップマッチング処理部112は、特徴点取得部111が取得した特徴点の数、及びこの特徴点と地図データの特徴点との一致度合いに基づいて、スコアを算出する。
【0030】
例えば、マップマッチング処理部112は、特徴点取得部111が取得した特徴点の数が多いほど位置の推定精度が高くなる見込みがあるため、スコアを高くする。また、マップマッチング処理部112は、特徴点取得部111が取得した特徴点と、地図データの特徴点との一致度合い(一致した割合)が大きいほど位置の推定精度が高くなるため、スコアを高くする。
【0031】
また、例えば、フォークリフト1が地図データ作成済みの第1領域R1と、地図データ未作成の第2領域R2との境界付近を走行中は、画像の一部に第2領域R2の天井画像が含まれる場合がある。この場合、天井画像内の第2領域R2に相当する範囲は、第1領域R1に相当する範囲よりも一致度が低くなる。マップマッチング処理部112は、このように、特徴点の一致度の分布にばらつきがある場合は、スコアを低くしてもよい。
【0032】
次に、切替部114は、マップマッチング処理部112による照合結果に基づいて、マップマッチングによる位置推定処理(第1処理)、及びV-SLAMを用いた位置推定処理(第2処理)の何れを実行するかを判断する(ステップS103)。切替部114は、照合結果が所定の条件を満たしていない場合(ステップS103:NO)、V-SLAMを用いた位置推定処理に切り替える。
【0033】
具体的には、切替部114は、マップマッチング処理部112が算出したスコアが閾値以上である場合、又は、フォークリフト1の位置が第1領域R1に含まれる場合、所定の条件を満たしたと判断する(ステップS103:YES)。一方、切替部114は、スコアが閾値未満であり、且つ、フォークリフト1の位置が第1領域R1に含まれない場合、所定の条件を満たしていないと判断する(ステップS103:NO)。なお、フォークリフト1の位置は、前回推定された位置を参照してもよいし、ステップS102においてマップマッチング処理部112が位置の推定まで行っていてもよい。また、フォークリフト1がどの領域に位置しているかは、フォークリフト1の任意の場所を示す代表点RPがどの領域に位置しているかに基づいて判断される。代表点RPは、例えば車体10の後端部中央、撮影装置12の設置位置等、フォークリフト1のどの場所に設定されてもよい。
【0034】
例えば、図4に示すように、フォークリフト1が作業領域R0の第1領域R1(P1の位置)にいる(フォークリフト1の代表点RPが第1領域R1に含まれる)とする。このとき、マップマッチング処理部112では、特徴点取得部111が取得した特徴点(画像の特徴点)と、地図データの特徴点とを照合した結果、スコアが閾値以上であったとする。この場合、切替部114は、所定の条件を満たしたと判断して(ステップS103:YES)、マップマッチングモードに切り替える。そうすると、マップマッチング処理部112は、マップマッチングによる位置推定処理(第1処理)を実行する(ステップS104)。マップマッチング処理部112は、画像の特徴点と地図データの特徴点とを照合してフォークリフト1の位置を推定するとともに、地図上におけるフォークリフト1の方位(進行方向)を推定する。マップマッチングによる位置及び方位を推定する処理は、既存の技術を利用可能である。
【0035】
また、例えば、図4に示すように、フォークリフト1が作業領域R0の第2領域R2(P2の位置)にいる(フォークリフト1の代表点RPが第2領域R2に含まれる)とする。更に、マップマッチング処理部112が算出したスコアが閾値未満であるとする。この場合、切替部114は、所定の条件を満たしていないと判断して(ステップS103:NO)、V-SLAMモードに切り替える。そうすると、位置推定部113は、V-SLAMを用いた位置推定処理(第2処理)を実行する(ステップS105)。V-SLAMを用いた位置推定処理は、既存の技術を利用可能である。
【0036】
フォークリフト1は、稼働中、図3に示す一連の処理を繰り返し実行する。これにより、フォークリフト1は、高精度な三次元地図である地図データが事前に準備された第1領域R1ではマップマッチングモードによる位置推定を行い、地図データが未作成のためマップマッチングができない第2領域R2ではV-SLAMを用いた位置推定に切り替えることができる。
【0037】
なお、図3の例では、ステップS103において、切替部114は、スコアが閾値以上である場合、又は、フォークリフト1の位置が第1領域内である場合、所定の条件を満たしたと判断して、マップマッチングモードに切り替える態様について説明したが、これに限られることはない。他の実施形態では、切替部114は、スコアが閾値以上である場合のみ、マップマッチングモードに切り替える態様であってもよい。この場合、切替部114は、スコアが閾値未満、且つフォークリフト1の位置が第1領域外である場合、V-SLAMモードに切り替えるが、スコアが閾値未満、且つフォークリフト1の位置が第1領域内である場合、位置推定が不可能であると判断するようにしてもよい。フォークリフト1の位置が第1領域内であり、且つスコアが閾値未満となるケースは、例えば、記憶媒体13に記憶された地図データが古く、現実の作業領域R0のレイアウトと異なっていることが考えられる。このため、このような態様においては、フォークリフト1の位置推定が不可能とならないように、レイアウト変更後は、必ずフォークリフト1の記憶媒体13に記憶された地図データを更新するように、運用ルールを規定することが望ましい。
【0038】
また、位置推定部113は、V-SLAMモード中に特徴点取得部111が取得した特徴点と、位置推定部113が推定したフォークリフト1の位置とを関連付けたサンプルデータを記憶媒体13に蓄積するようにしてもよい。また、このサンプルデータは、通信インタフェース14を通じてデータベース2に送信し、データベース2に複数のフォークリフト1が取得したサンプルデータを蓄積するようにしてもよい。記憶媒体13又はデータベース2に所定数以上のサンプルデータが蓄積された場合、これら複数のサンプルデータに基づいて第2領域R2の天井地図を作成して、地図データに追加してもよい。これにより、フォークリフトを運用し続けることで、運用前に地図データが作成できなかった第2領域R2の面積を減らし、マップマッチングが可能な第1領域R1の面積を増やすことができる。
【0039】
(作用効果)
以上のように、本実施形態に係るフォークリフト1において、切替部114は、撮影装置12により撮影した画像から取得した特徴点と、地図データの特徴点との照合結果が所定の条件を満たしていない場合、マップマッチング処理部112による第1処理から、位置推定部113による第2処理に切り替える。
このようにすることで、フォークリフト1は、高精度な三次元地図である地図データが作業領域R0の一部の領域(第1領域R1)のみでしか作成できなかった場合であっても、地図データ未作成の領域(第2領域R2)を走行中は、V-SLAMを用いて位置推定処理を継続して実行することができる。これにより、フォークリフト1は、地図データの有無に関わらず自己位置を推定することができる。
【0040】
また、マップマッチング処理部112は、画像の特徴点の数、及び、画像の特徴点と地図データの特徴点との一致度合いに基づくスコアを算出し、切替部114は、スコアが閾値未満である場合、マップマッチング処理部112による第1処理から、位置推定部113による第2処理に切り替えてもよい。
更に、切替部114は、マップマッチング処理部112により推定されたフォークリフト1の位置が第2領域R2に含まれる場合、マップマッチング処理部112による第1処理から、位置推定部113による第2処理に切り替えてもよい。
このようにすることで、例えばフォークリフト1が地図データを未作成の第2領域R2に進入した場合等、マップマッチングが適切に行えないときは、V-SLAMを用いて位置推定処理を継続して実行することができる。
【0041】
<第2の実施形態>
次に、本開示の第2の実施形態に係るフォークリフト1について、図5図6を参照しながら説明する。第1の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
【0042】
本実施形態に係るフォークリフト1は、位置推定部113が位置推定用のスケール計算を行う点において、第1の実施形態と異なっている。V-SLAMを用いた位置推定処理では、撮影した画像内におけるスケール(距離単位)が不明であるため、推定位置の誤差が蓄積して精度が低下する可能性がある。また、推定位置と実際の位置とのずれが大きくなると、マップマッチングモードに切り替えた際に、復帰点(マップマッチングの初期値)をサーチする負荷が上がってしまう可能性がある。このため、本実施形態に係る位置推定部113は、マップマッチングモード時に画像内におけるスケールを計算しておき、V-SLAMモード時には計算したスケールを用いて位置推定を行うようにしている。
【0043】
(フォークリフトの処理フロー)
図5は、本開示の第2の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
図6は、本開示の第2の実施形態に係るフォークリフトの機能を説明するための図である。
以下、図5図6を参照しながら、本実施形態に係るフォークリフト1の位置推定部113の処理について詳細に説明する。
【0044】
図5に示すように、フォークリフト1の特徴点取得部111は、撮影装置12が撮影した画像内に含まれる特徴点を取得する(ステップS201)。当該処理は、第1の実施形態(図3のステップS101)と同様である。
【0045】
次に、マップマッチング処理部112は、特徴点取得部111が取得した特徴点と、地図データの特徴点とを照合(マップマッチング)して、フォークリフト1の位置を推定する(ステップS202)。
【0046】
次に、位置推定部113は、フォークリフト1の位置が第1領域R1に含まれ、且つ、第1領域R1と第2領域R2との境界から所定範囲R4内に含まれているか判断する(ステップS203)。位置推定部113は、例えば、フォークリフト1の移動速度及び進行方向に基づいて、フォークリフト1がT秒以内に第2領域R2に到達可能な範囲を計算して、所定範囲R4として設定する。T秒の具体的な値は、位置推定部113がスケール計算に要する時間以上となるように設定される。
【0047】
例えば図6に示すように、時刻t0におけるフォークリフト1の位置がP3であったとする。この場合、位置P3におけるフォークリフト1の代表点RPは所定範囲R4に含まれていないため(ステップS203:NO)、位置推定部113は、スケール計算を行わずに処理を終了する。このとき、位置P3におけるフォークリフト1の代表点RPは第1領域R1に含まれているため、切替部114によりV-SLAMモードはOFFにされ、マップマッチングモードがONの状態となっている(図3のステップS103:YES)。
【0048】
また、例えば図6に示すように、時刻t1におけるフォークリフト1の位置がP4であったとする。この場合、位置P4におけるフォークリフト1の代表点RPは所定範囲R4に含まれているため(ステップS203:YES)、位置推定部113は、特徴点取得部111が取得した特徴点と、地図データの特徴点とに基づいて、画像内のスケールを計算する(ステップS204)。このとき、位置P4におけるフォークリフト1の代表点RPは第1領域R1に含まれているため、切替部114はマップマッチングモードをONのまま維持するが、V-SLAMモードもONにして、位置推定部113によるスケール計算を実行可能にする。
【0049】
また、図6に示すように、時刻t2におけるフォークリフト1の位置がP5であったとする。このとき、位置P5におけるフォークリフト1の代表点RPは第1領域R1から第2領域R2に移動したため(ステップS203:NO)、位置推定部113はスケール計算を停止する。このとき、切替部114はマップマッチングモードをOFFにして、V-SLAMモードに切り替える(図3のステップS103:NO)。
【0050】
また、図6に示すように、時刻t3におけるフォークリフト1の位置がP6であったとする。この場合、位置P6におけるフォークリフト1の代表点RPは第1領域R1、且つ所定範囲R4に含まれているため(ステップS203:YES)、位置推定部113は、画像内のスケールを計算する(ステップS204)。このとき、位置P6におけるフォークリフト1の代表点RPは第1領域R1に含まれているため、切替部114によりマップマッチングモードに切り替えられる(図3のステップS103:YES)が、スケール計算のためV-SLAMモードもONのまま維持されている。図6の例では、フォークリフト1の代表点RPが第2領域R2から第1領域R1に移動した後も、所定範囲R4内に位置しているときは、再度第2領域R2に戻る可能性がある。このため、本実施形態に係る位置推定部113は、第2領域R2への進入前のT秒間、及び第2領域R2から退出後のT秒間の両期間において、スケール計算を実行する。
【0051】
また、図6に示すように、時刻t4におけるフォークリフト1の位置がP7であったとする。この場合、位置P7におけるフォークリフト1の代表点RPは所定範囲R4に含まれていないため(ステップS203:NO)、位置推定部113は、スケール計算を停止する。このとき、切替部114により、V-SLAMモードがOFFにされる。
【0052】
位置推定部113は、フォークリフト1の稼働中、図5に示す一連の処理を繰り返し実行する。これにより、位置推定部113は、フォークリフト1が第2領域R2に進入する前に画像内のスケールを計算しておき、V-SLAMモードに切り替えた後は計算したスケールを使用して、フォークリフト1の位置を推定する精度が低下することを抑制することができる。
【0053】
なお、位置推定部113がスケール計算に使用する特徴点は、スケール計算中(フォークリフト1が所定範囲R4内に位置する期間。例えば、図6の時刻t1~t2及び時刻t3~t4の期間。)に時系列的に安定して取得できる特徴点が好ましい。このため、位置推定部113は、特徴点取得部111が取得した複数の特徴点のうち、マップマッチング処理部112による照合時のスコアが高いもの、又は、長期間継続して取得できた特徴点をスケール計算に使用する。
【0054】
(作用効果)
以上のように、本実施形態に係るフォークリフト1において、位置推定部113は、第2領域R2への進入前のT秒間、及び第2領域R2から退出後のT秒間の両期間において、スケール計算を行い、V-SLAMモード時は、計算したスケールを使用してフォークリフト1の位置を推定する。
このようにすることで、フォークリフト1は、スケールから実距離を算出可能となるため、V-SLAMモード時でも高い精度で自己位置を推定することができる。
【0055】
<第3の実施形態>
次に、本開示の第3の実施形態に係るフォークリフト1について、図7図12を参照しながら説明する。第1及び第2の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
【0056】
(フォークリフトの機能構成)
図7は、本開示の第3の実施形態に係るフォークリフトの機能構成を示す図である。
図7に示すように、本実施形態に係るフォークリフト1は、マーカ処理部115を更に備える点において、第1及び第2の実施形態と異なっている。
【0057】
マーカ処理部115は、撮影装置12が撮影した画像から読み取ったマーカに基づいて、フォークリフト1の車体10の位置を推定する第3処理を実行する。マーカは、二次元バーコード、ARマーカ等であり、作業領域R0の天井に設けられる。なお、他の実施形態では、撮影装置12は、天井画像を撮影するためのカメラと、マーカを読み取るためのカメラ(読取装置)とをそれぞれ有していてもよい。
【0058】
切替部114は、マーカ処理部115によりマーカが検出された場合、第1処理(マップマッチングによる位置推定処理)又は第2処理(V-SLAMを用いた位置推定処理)から、第3処理(マーカを用いた位置推定処理)に切り替える。即ち、本実施形態に係る切替部114は、マップマッチング処理部112が第1処理を実行するマップマッチングモード、位置推定部113が第2処理を実行するV-SLAMモード、及びマーカ処理部115が第3処理を実行するマーカ処理モードの何れかに切り替える。
【0059】
また、記憶媒体13には、作業領域R0に設けられた複数のマーカそれぞれのID情報と、設置位置とを関連付けて記録した地図データ(マーカ地図)が予め記憶されている。更に、通信インタフェース14は、例えばマーカ地図が更新された場合に、データベース2から新たなマーカ地図を受信して、記憶媒体13に記憶するようにしてもよい。
【0060】
(フォークリフトの処理フロー)
図8は、本開示の第3の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
図9は、本開示の第3の実施形態に係るマーカ処理を説明するための図である。
以下、図8図9を参照しながら、本実施形態に係るフォークリフト1の位置推定処理について詳細に説明する。
【0061】
図8に示すように、マーカ処理部115は、撮影装置12が撮影した画像からマーカを検出する処理を実行する(ステップS301)。また、画像の端部においては、レンズの歪みの影響により、マーカの認識精度が低下する可能性がある。このため、マーカ処理部115は、図9に示すように、画像内の中心Cから所定の範囲(信頼区間F1)内に位置するマーカ(図9の例では、マーカM1、M2)のみを検出し、信頼区間F1外に位置するマーカ(図9の例では、マーカM2)は除外するようにしてもよい。
【0062】
次に、切替部114は、マーカが検出されたか否かを判断する(ステップS302)。マーカ処理部115によりマーカが検出された場合(ステップS302:YES)、マップマッチングモード又はV-SLAMモードからマーカ処理モードに切り替える。
【0063】
そうすると、マーカ処理部115は、検出したマーカのID情報、サイズ、角度等に基づいて、フォークリフト1の位置を推定する第3処理を実行する(ステップS303)。マーカから自己位置を推定する処理は、既存の技術を利用可能である。
【0064】
また、図9に示すように、マーカ処理部115は、信頼区間F1内において複数のマーカM1、M2を検出する場合がある。この場合、マーカ処理部115は、画像の中心Cに最も近いマーカM2に基づいて、フォークリフト1の位置を推定する。更に他の実施形態では、マーカ処理部115は、複数のマーカM1、M2から推定される位置について、画像の中心Cからの距離に近いほど重みを付けて平均して、フォークリフト1の推定位置を計算するようにしてもよい。
【0065】
一方、マーカ処理部115によりマーカが検出されなかった場合(ステップS302:NO)、フォークリフト1は、マップマッチングモード又はV-SLAMモードによる位置推定処理を実行する(ステップS101~S105)。これらの処理は、第1実施形態(図3のステップS101~S105)と同様であるため、説明を省略する。
【0066】
(マーカの配置処理)
図10は、本開示の第3の実施形態に係るマーカ配置処理の一例を示すフローチャートである。
図11は、本開示の第3の実施形態に係るマーカ配置処理を説明するための第1の図である。
図12は、本開示の第3の実施形態に係るマーカ配置処理を説明するための第2の図である。
本実施形態において、マーカは、フォークリフト1の運用前に、作業領域R0内の各所に予め配置される。以下、図10図12を参照しながら、マーカの配置処理の例について説明する。
【0067】
図10に示すように、マーカの配置を行う作業者は、作業領域R0の複数の調査地点それぞれの環境について調査を行う(ステップS401)。調査地点は、例えば作業領域R0の一定距離ごとに設定される。この距離は、フォークリフト1に設けられる撮影装置12の撮影範囲等に応じて任意に設定してもよい。例えば、作業者は、各調査地点における照明条件(明るさの変化量の大小)、天井の画像的特徴(形状等の変化)の多寡、フォークリフト1を高速で運用するか否か等を調査する。
【0068】
次に、作業者は、作業領域R0の各調査地点における環境に基づいて、マーカを配置するか否かを判断する(ステップS402)。なお、作業者は、マーカ配置計画用のコンピュータ(不図示)に調査結果を入力して、コンピュータに判断させてもよい。
【0069】
例えば、窓が近い位置は、時間帯、天候等に応じて明るさが大きく変化するため、撮影装置12が撮影した画像から特徴点を取得することが困難となる可能性がある。また、天井の画像的特徴に乏しい場所では、撮影装置12が撮影した画像から十分な数の特徴点を取得することが困難となる可能性がある。更に、フォークリフト1が高速で運用される場所(移動速度、又は旋回速度が速い場所)では、撮影装置12が撮影した画像にブレ等が生じ、特徴点を取得することが困難となる可能性がある。このため、作業者又はコンピュータは、ある調査地点について、照明条件の変化が基準値よりも大きい場合、天井の画像的特徴(検出される特徴点)が基準値よりも少ない場合、又は、フォークリフト1が基準値よりも高速で運用される場合(ステップS402:YES)、当該調査地点にマーカを配置すると決定する(ステップS403)。
【0070】
また、作業者又はコンピュータは、ある調査地点について、照明条件の変化が基準値よりも小さい場合、天井の画像的特徴が基準値よりも多い場合、且つ、フォークリフト1が基準値以内の速度で運用される場合(ステップS402:NO)、当該調査地点にマーカを配置しないと決定する(ステップS404)。
【0071】
作業者又はコンピュータは、作業領域R0の全調査地点について、図10のステップS402~S404を実行することにより、作業領域R0内のマーカ配置パターンを決定する。これにより、画像から取得した特徴点から位置を推定しにくい場所のみに限定してマーカを配置することができるので、位置推定の精度低下を抑制しつつ、マーカの配置数を最小限に抑えることができる。
【0072】
また、図11に示すように、作業者は、作業領域R0内でLiDAR等のレーザセンサ91と、カメラ92を有する調査用のフォークリフト9を走行させて、LiDAR(レーザセンサ91)による測位結果L1~L8と、V-SLAM(カメラ92)による測位結果V1~V8とを取得する調査を行ってもよい。この場合、作業者又はコンピュータは、LiDARによる測位結果と、V-SLAMによる測位結果の乖離が基準値よりも大きい場所にマーカを配置すると決定する。図11の例では、LiDARによる測位結果L1、L2と、V-SLAMによる測位結果V1、V2の乖離が基準値よりも大きいため、この地点にマーカを配置すると決定する。このようにすることで、V-SLAMモード時における位置の推定精度が低下する場所にのみマーカを配置すればよいので、位置推定の精度低下を抑制しつつ、マーカの配置数を最小限に抑えることができる。
【0073】
また、図12に示すように、作業者又はコンピュータは、作業領域R0の各調査地点における、LiDARの測位結果とV-SLAMの測位結果との乖離度合い段階的に表したヒートマップを作成してもよい。例えば、図12に示すように、乖離度合いは、大、中、小の三段階に分類される。乖離度合いが「小」の調査地点は、マーカの配置は不要である。乖離度合いが「中」の調査地点は、V-SLAMモード時に位置の推定精度が低下する可能性があるため、マーカを配置することを推奨する。また、乖離度合いが「大」の調査地点は、V-SLAMモード時に位置の推定精度が大きく低下する可能性があるため、マーカの配置を必須とする。このようなヒートマップを作成することにより、マーカをどこにどれだけ配置すればよいかを容易に計画することができる。
【0074】
更に、作業者は、マーカを配置した後に、再度調査用のフォークリフト9を走行させて、LiDARによる測位結果、V-SLAMによる測位結果とともに、カメラ92によりマーカを撮影した画像を取得するようにしてもよい。この時、例えばLiDARによる測位結果(フォークリフト9の位置)と、当該位置において撮影したマーカの画像、当該マーカのID情報とを関連付けた、マーカ地図を作成してもよい。これにより、マーカ地図を効率的に作成することができる。また、フォークリフト1のマーカ処理部115は、撮影装置12が撮影したマーカの画像と、当該画像から読み取ったID情報とに基づいて、マーカ地図から略同じ位置で撮影されたマーカの画像を検索する。そして、マーカ処理部115は、検索した画像と関連付けられた測位結果に基づいて、フォークリフト1の位置を推定してもよい。これにより、マーカ処理部115の処理を簡易化することができる。
【0075】
(作用効果)
以上のように、本実施形態に係るフォークリフト1は、撮影装置12が撮影した画像からマーカを検出し、検出したマーカに基づいてフォークリフト1の位置を推定する第3処理を実行するマーカ処理部115を更に備える。
このようにすることで、フォークリフト1は、例えば天井の特徴点が少ない場所等、マップマッチング又はV-SLAMによる位置推定が困難な場所においても、マーカに基づいて、自己位置を容易且つ精度よく推定することができる。
【0076】
また、マーカ処理部115は、画像に複数のマーカが含まれている場合、画像の中心Cに最も近いマーカに基づいて、フォークリフト1の位置を推定してもよい。
画像の端部においては、レンズの歪みの影響により、マーカの認識精度が低下する可能性がある。しかしながら、マーカ処理部115は、画像の中心Cに最も近いマーカのみに基づいて位置の推定を行うことにより、このような認識精度の低下を抑制可能である。
【0077】
また、マーカ処理部115は、画像に複数のマーカが含まれている場合、マーカそれぞれから推定される位置について、画像の中心Cからの距離に応じて重み付け平均して、フォークリフト1の位置を推定する。
このようにすることで、マーカ処理部115は、フォークリフト1の位置を推定する精度が低下することを抑制可能である。
【0078】
<第4の実施形態>
次に、本開示の第4の実施形態に係るフォークリフト1について、図13図14を参照しながら説明する。第1~第3の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
【0079】
(フォークリフトの機能構成)
図13は、本開示の第4の実施形態に係るフォークリフトの機能構成を示す図である。
図13に示すように、本実施形態に係るフォークリフト1は、センサ15と、オドメトリ処理部116を更に備える点において、第3の実施形態と異なっている。
【0080】
センサ15は、フォークリフト1の車輪の回転数を計測するセンサ、操舵角を推定可能な検出値を取得するセンサ、ジャイロセンサ、慣性計測装置(IMU:Inertial Measurement Unit)のうち一つ、又は複数を含む。
【0081】
オドメトリ処理部116は、センサ15を通じて取得したセンサ値から推測される車速操舵角、及びヨーレートに基づいてオドメトリ計算を行い、フォークリフト1の位置を推定する第4処理を実行する。第4処理とは、オドメトリによる位置推定処理である。
【0082】
切替部114は、V-SLAMモードにおいて特徴点取得部111が取得した特徴点の数が所定数未満である場合、位置推定部113による第2処理から、オドメトリ処理部116による第4処理に切り替える。即ち、切替部114は、V-SLAMモードと、オドメトリ処理部116が第4処理を実行するオドメトリモードとを切り替える。
【0083】
(フォークリフトの処理フロー)
図14は、本開示の第4の実施形態に係るフォークリフトの処理の一例を示すフローチャートである。
以下、図14を参照しながら、本実施形態に係るフォークリフト1の位置推定処理について詳細に説明する。
【0084】
図14に示すように、本実施形態に係るフォークリフト1の位置推定処理において、ステップS301~S303の処理、及びステップS101~S105の処理は、第3の実施形態における位置推定処理(図8)と同様である。ここでは、第3の実施形態との相違点についてのみ説明する。
【0085】
本実施形態に係るフォークリフト1の切替部114は、撮影装置12が撮影した画像からマーカが検出されなかった場合(ステップS302:NO)、且つ、V-SLAMモードに切り替える場合(ステップS103:NO)、更に、特徴点取得部111が取得した特徴点の数が所定数以上であるか判断する(ステップS501)。
【0086】
切替部114は、特徴点取得部111が取得した特徴点の数が所定数以上である場合(ステップS501:YES)、位置推定部113による第2処理(V-SLAMモード)に切り替える。そうすると、位置推定部113は、V-SLAMを用いた位置推定処理(第2処理)を実行する(ステップS104)。
【0087】
一方、切替部114は、特徴点取得部111が取得した特徴点の数が所定数未満である場合(ステップS501:NO)、オドメトリ処理部116による第4処理(オドメトリモード)に切り替える。そうすると、オドメトリ処理部116は、オドメトリによる位置推定処理(第4処理)を実行する(ステップS502)。オドメトリによる位置推定処理は、既存の技術を利用可能である。
【0088】
フォークリフト1は、稼働中、図14に示す一連の処理を繰り返し実行する。これにより、フォークリフト1は、V-SLAMモードによる自己位置の推定が困難な場合は、オドメトリ処理部116による第4処理に切り替えて、自己位置の推定処理を継続して実行することができる。
【0089】
(作用効果)
以上のように、本実施形態に係るフォークリフト1は、V-SLAMモードにおいて、画像から検出可能な特徴点が少ない場合は、オドメトリモードに切り替えて、自己位置の推定処理を継続して実行することができる。
これにより、フォークリフト1は、例えば天井の特徴点が少なく、且つ、マーカの配置が漏れている場所においても、オドメトリ計算を使用して、位置の推定精度が低下することを抑制可能である。
【0090】
(ハードウェア構成)
図15は、本開示の一実施形態に係るフォークリフトのハードウェア構成の一例を示す図である。
以下、図15を参照しながら、本実施形態に係るフォークリフト1のハードウェア構成について説明する。
【0091】
コンピュータ900は、プロセッサ901、主記憶装置902、補助記憶装置903、インタフェース904を備える。
【0092】
上述のフォークリフトは、一つ又は複数のコンピュータ900に実装される。そして、上述した各機能部の動作は、プログラムの形式で補助記憶装置903に記憶されている。プロセッサ901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ901は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置902に確保する。プロセッサ901の例としては、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサなどが挙げられる。
【0093】
プログラムは、コンピュータ900に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、補助記憶装置903に既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、コンピュータ900は、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、プロセッサ901によって実現される機能の一部または全部が当該集積回路によって実現されてよい。このような集積回路も、プロセッサの一例に含まれる。
【0094】
補助記憶装置903の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。補助記憶装置903は、コンピュータ900のバスに直接接続された内部メディアであってもよいし、インタフェース904または通信回線を介してコンピュータ900に接続される外部記憶装置910であってもよい。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、補助記憶装置903は、一時的でない有形の記憶媒体である。
【0095】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、当該プログラムは、前述した機能を補助記憶装置903に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0096】
以上、本開示の実施形態について詳細に説明したが、本発明の技術的思想を逸脱しない限り、これらに限定されることはなく、多少の設計変更等も可能である。
【0097】
<付記>
上述の実施形態に記載のフォークリフト、位置推定方法、及びプログラムは、例えば以下のように把握される。
【0098】
本開示の第1の態様によれば、フォークリフトは、車体に設けられた撮影装置が撮影した画像から特徴点を取得する特徴点取得部と、前記特徴点取得部が取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するマップマッチング処理部と、前記特徴点取得部が取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行する位置推定部と、前記特徴点取得部が取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替える切替部と、を備える。
【0099】
このようにすることで、フォークリフトは、高精度な三次元地図である地図データが作業領域の一部の領域のみでしか作成できなかった場合であっても、地図データ未作成の領域を走行中は、第2処理(V-SLAMを用いた位置推定処理)を継続して実行することができる。これにより、フォークリフトは、地図データの有無に関わらず自己位置を推定することができる。
【0100】
本開示の第2の態様によれば、第1の態様に係るフォークリフトにおいて、前記マップマッチング処理部は、前記特徴点取得部が取得した前記特徴点の数、及び当該特徴点と前記地図データの特徴点との一致度合いに基づくスコアを前記照合結果として算出し、前記切替部は、前記スコアが閾値未満である場合、前記マップマッチング処理部による前記第1処理から、前記位置推定部による前記第2処理に切り替える。
【0101】
このようにすることで、例えばフォークリフトがマップマッチングが適切に行えないときは、第2処理(V-SLAMを用いた位置推定処理)による位置推定処理を継続して実行することができる。
【0102】
本開示の第3の態様によれば、第1又は第2の態様に係るフォークリフトにおいて、前記作業領域は、前記地図データを作成済みの第1領域と、前記地図データを未作成の第2領域とを含み、前記切替部は、前記マップマッチング処理部により推定された前記位置が前記第2領域に含まれる場合、前記第1処理から前記第2処理に切り替える。
【0103】
このようにすることで、例えばフォークリフトが地図データを未作成の領域に進入した場合等、マップマッチングが適切に行えないときは、第2処理(V-SLAMを用いた位置推定処理)による位置推定処理を継続して実行することができる。
【0104】
本開示の第4の態様によれば、第3の態様に係るフォークリフトにおいて、前記位置推定部は、前記マップマッチング処理部により推定された前記位置が前記第1領域に含まれ、且つ、前記第1領域と前記第2領域との境界から所定範囲以内に含まれている場合、前記特徴点取得部が取得した前記特徴点と、前記地図データとに基づいて、前記特徴点間の距離、又は前記撮影装置から前記特徴点までの距離を位置推定用のスケールとして計算し、前記第2処理を実行する際に、前記スケールを使用して前記車体の位置を推定する。
【0105】
このようにすることで、フォークリフトは、スケールから実距離を算出可能となるため、V-SLAMモードを用いた第2処理時においても高い精度で自己位置を推定することができる。
【0106】
本開示の第5の態様によれば、第1から第4の何れか一の態様に係るフォークリフトは、前記撮影装置が撮影した画像からマーカを検出し、前記マーカに基づいて前記車体の位置を推定する第3処理を実行するマーカ処理部を更に備え、前記切替部は、前記画像から前記マーカが検出された場合、前記第1処理又は前記第2処理から前記第3処理に切り替える。
【0107】
このようにすることで、フォークリフトは、例えば天井の特徴点が少ない場所等、マップマッチング又はV-SLAMによる位置推定が困難な場所においても、マーカに基づいて、自己位置を容易且つ精度よく推定することができる。
【0108】
本開示の第6の態様によれば、第5の態様に係るフォークリフトにおいて、前記マーカ処理部は、前記画像に複数の前記マーカが含まれている場合、前記画像の中心に最も近いマーカに基づいて、前記車体の位置を推定する。
【0109】
画像の端部においては、レンズの歪みの影響により、マーカの認識精度が低下する可能性がある。しかしながら、上述のように画像の中心Cに最も近いマーカのみに基づいて位置の推定を行うことにより、このような認識精度の低下を抑制可能である。
【0110】
本開示の第7の態様によれば、第5の態様に係るフォークリフトにおいて、前記マーカ処理部は、前記画像に複数の前記マーカが含まれている場合、前記マーカそれぞれから推定される位置について、前記画像の中心からの距離に応じて重み付け平均して、前記車体の位置を推定する。
【0111】
このようにすることで、マーカ処理部は、フォークリフトの位置を推定する精度が低下することを抑制可能である。
【0112】
本開示の第8の態様によれば、第1から第7の何れか一の態様に係るフォークリフトは、前記車体に設けられたセンサから取得したセンサ値から推測される車速、操舵角及びヨーレートに基づいてオドメトリ計算を行い、前記車体の位置を推定する第4処理を実行するオドメトリ処理部を更に備え、前記切替部は、前記特徴点取得部が取得した前記特徴点の数が所定数未満である場合、前記第2処理から前記第4処理に切り替える。
【0113】
このようにすることで、フォークリフトは、例えば天井の特徴点が少なく、且つ、マーカの配置が漏れている場所においても、オドメトリ計算を使用して、位置の推定精度が低下することを抑制可能である。
【0114】
本開示の第9の態様によれば、位置推定方法は、フォークリフトの車体に設けられた撮影装置が撮影した画像から特徴点を取得するステップと、取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するステップと、取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行するステップと、取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替えるステップと、を有する。
【0115】
本開示の第10の態様によれば、プログラムは、フォークリフトの車体に設けられた撮影装置が撮影した画像から特徴点を取得するステップと、取得した前記特徴点と、作業領域の特徴点を予め記録した地図データとを照合し、前記車体の位置を推定する第1処理を実行するステップと、取得した前記特徴点から地図を生成しながら、前記車体の位置を推定する第2処理を実行するステップと、取得した前記特徴点と前記地図データの特徴点との照合結果が所定の条件を満たしていない場合、前記第1処理から前記第2処理に切り替えるステップと、をフォークリフトのコンピュータに実行させる。
【符号の説明】
【0116】
1 フォークリフト
10 車体
11 CPU
111 特徴点取得部
112 マップマッチング処理部
113 位置推定部
114 切替部
115 マーカ処理部
116 オドメトリ処理部
12 撮影装置
13 記憶媒体
14 通信インタフェース
15 センサ
2 データベース
900 コンピュータ
901 プロセッサ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15