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

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

▶ カシオ計算機株式会社の特許一覧

特開2024-89680測位装置、移動体、測位方法及びプログラム
<>
  • 特開-測位装置、移動体、測位方法及びプログラム 図1
  • 特開-測位装置、移動体、測位方法及びプログラム 図2
  • 特開-測位装置、移動体、測位方法及びプログラム 図3
  • 特開-測位装置、移動体、測位方法及びプログラム 図4
  • 特開-測位装置、移動体、測位方法及びプログラム 図5
  • 特開-測位装置、移動体、測位方法及びプログラム 図6
  • 特開-測位装置、移動体、測位方法及びプログラム 図7
  • 特開-測位装置、移動体、測位方法及びプログラム 図8
  • 特開-測位装置、移動体、測位方法及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024089680
(43)【公開日】2024-07-04
(54)【発明の名称】測位装置、移動体、測位方法及びプログラム
(51)【国際特許分類】
   G05D 1/43 20240101AFI20240627BHJP
   G01C 21/30 20060101ALI20240627BHJP
【FI】
G05D1/02 K
G01C21/30
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022205013
(22)【出願日】2022-12-22
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】宮本 直知
【テーマコード(参考)】
2F129
5H301
【Fターム(参考)】
2F129AA03
2F129BB06
2F129BB14
2F129BB15
2F129BB33
2F129BB38
2F129BB39
2F129BB49
2F129BB66
2F129CC14
2F129DD39
2F129EE69
2F129FF02
2F129FF08
2F129FF18
2F129GG17
2F129HH18
2F129HH20
5H301AA01
5H301AA07
5H301BB10
5H301CC03
5H301CC06
5H301CC10
5H301FF06
5H301FF11
5H301GG09
5H301GG17
(57)【要約】
【課題】より確実に測位を行うことが可能な測位装置、移動体、測位方法及びプログラムを提供する。
【解決手段】測位装置は、空間を移動する移動体に設けられた撮像部により撮像された画像において、光源と、光源とは異なる物標と、を検出し、画像における光源及び物標の位置と、空間における光源及び物標の既知の位置と、に基づいて空間における移動体の位置を導出する処理部を備える。また、移動体は、上記の測位装置と、測位装置と、撮像部と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
空間を移動する移動体に設けられた撮像部により撮像された画像において、光源と、前記光源とは異なる物標と、を検出し、前記画像における前記光源及び前記物標の位置と、前記空間における前記光源及び前記物標の既知の位置と、に基づいて前記空間における前記移動体の位置を導出する処理部を備える、測位装置。
【請求項2】
前記処理部は、
前記画像において、1つの前記光源と、前記物標と、を検出した場合に、前記画像における前記1つの光源及び前記物標の位置と、前記空間における前記1つの光源及び前記物標の既知の位置と、に基づいて前記移動体の位置を導出し、
前記画像において前記光源を検出し、かつ、検出した前記光源が複数の光源である場合には、前記画像における前記複数の光源のうち少なくとも2つの光源の位置と、前記空間における前記少なくとも2つの光源の既知の位置と、に基づいて前記移動体の位置を導出する、
請求項1に記載の測位装置。
【請求項3】
前記処理部は、前記画像において前記光源及び前記物標を検出し、かつ、検出した前記光源が複数の光源である場合に、前記画像における前記複数の光源のうち少なくとも2つの光源及び前記物標の位置と、前記空間における前記少なくとも2つの光源及び前記物標の既知の位置と、に基づいて前記移動体の位置を導出する、
請求項1に記載の測位装置。
【請求項4】
前記処理部は、前記画像において前記光源及び前記物標を検出し、かつ、検出した前記物標が複数の物標である場合に、前記画像における前記光源及び前記複数の物標のうち少なくとも2つの物標の位置と、前記空間における前記光源及び前記少なくとも2つの物標の既知の位置と、に基づいて前記移動体の位置を導出する、
請求項1に記載の測位装置。
【請求項5】
前記処理部は、最後に導出した前記移動体の位置に基づいて、前記画像に写っている前記物標の識別結果を取得し、取得した前記識別結果に基づいて前記空間における前記物標の前記既知の位置を特定する、
請求項1に記載の測位装置。
【請求項6】
前記処理部は、さらに現在時刻に基づいて、前記画像に写っている前記物標の識別結果を取得する、
請求項5に記載の測位装置。
【請求項7】
前記光源は、固有の発光パターンで発光し、
前記処理部は、前記画像から特定される前記発光パターンに基づいて前記光源を識別し、前記光源の識別結果に基づいて前記空間における前記光源の前記既知の位置を特定する、
請求項1に記載の測位装置。
【請求項8】
請求項1~7のいずれか一項に記載の測位装置と、
前記撮像部と、
を備える移動体。
【請求項9】
前記測位装置の前記処理部が前記空間における前記物標の位置に基づいて前記移動体の位置を導出した場合に、前記移動体の移動速度を基準値未満の低速に低減させる制御部を備える、
請求項8に記載の移動体。
【請求項10】
コンピュータが実行する測位方法であって、
空間を移動する移動体に設けられた撮像部により撮像された画像において、光源と、前記光源とは異なる物標と、を検出し、前記画像における前記光源及び前記物標の位置と、前記空間における前記光源及び前記物標の既知の位置と、に基づいて前記空間における前記移動体の位置を導出する、測位方法。
【請求項11】
コンピュータを、空間を移動する移動体に設けられた撮像部により撮像された画像において、光源と、前記光源とは異なる物標と、を検出し、前記画像における前記光源及び前記物標の位置と、前記空間における前記光源及び前記物標の既知の位置と、に基づいて前記空間における前記移動体の位置を導出する処理手段として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、測位装置、移動体、測位方法及びプログラムに関する。
【背景技術】
【0002】
従来、屋内における移動体の測位をするために、光を発する光源からの情報により当該移動体の測位を行う技術が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-76401号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、周囲の環境によっては、光源からの光を適切に受信できずに測位ができなくなるおそれがある。
【0005】
本発明は、より確実に測位を行うことを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る測位装置は、
空間を移動する移動体に設けられた撮像部により撮像された画像において、光源と、前記光源とは異なる物標と、を検出し、前記画像における前記光源及び前記物標の位置と、前記空間における前記光源及び前記物標の既知の位置と、に基づいて前記空間における前記移動体の位置を導出する処理部を備える。
【発明の効果】
【0007】
本発明によれば、より確実に測位を行うことができる。
【図面の簡単な説明】
【0008】
図1】測位システムの構成を示す図である。
図2】移動体の機能構成を示すブロック図である。
図3】測位に用いられる画像の例を示す図である。
図4】光源位置データの内容例を示す図である。
図5】物標位置データの内容例を示す図である。
図6】移動体の位置の導出方法を説明する図である。
図7】画像の他の例を示す図である。
図8】測位移動処理の制御手順を示すフローチャートである。
図9】測位移動処理の制御手順の他の例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態を図面に基づいて説明する。
【0010】
(測位システムの構成)
図1は、本実施形態における測位システム1の構成を示す図である。
測位システム1は、移動体10と、複数の光源20a、20b、20c、20d、…(以下、任意の1つの光源を指す場合には「光源20」と記す)とを備える。本実施形態では、測位システム1を月面上の空間500において適用した場合を例に挙げて説明する。以下では、空間500における移動体10及び光源20の位置をXYZ直交座標系により表す。Z方向は鉛直方向(月の重力加速度方向)上向きであり、X方向及びY方向は、互いに垂直、かつZ方向に垂直であるものとする。
【0011】
移動体10は、月面上の空間500を自律走行(移動)して探査する月面探査車(ローバー)である。移動体10は、2つのカメラ14(撮像部)と、カメラ14により撮像された画像に基づいて移動体10の位置及び向きを導出する測位装置100とを備える。本明細書では、空間500における移動体10の位置及び向きのうち、少なくとも位置を導出することを「測位」と記す。本実施形態の測位装置100が行う測位は、移動体10の位置及び向きの双方を導出する動作を含む。移動体10は、測位装置100が所定の頻度で行う測位の結果に基づいて自装置の位置及び向きを特定しつつ、設定された目的地に向かって自律的に移動する。
【0012】
複数の光源20は、月面上において互いに間隔をあけて設置されている。各光源20は、その設置時に、空間500にける位置(XYZ座標)が測量されている(位置が既知である)。光源20は、月面上の位置を表す位置指標として機能し、マーカーとも呼ばれる。各光源20は、例えば赤、緑及び青の光を発する3つのLED(Light Emitting Diode)を有し、固有の発光パターンで発光する。すなわち、各光源20は、光源20ごとに予め定められたパターンで、発光色を時系列に沿って変化させる。各光源20の発光パターンをデコードすることで、各光源20に割り当てられた光源IDを特定することができる。このように、光源20は、可視光により情報(ここでは、光源ID)を伝達する可視光通信に用いられる。
【0013】
複数の光源20は、空間500のうち移動体10が移動する可能性のある範囲において、移動体10がどの位置にあってもカメラ14により2以上の光源20が撮像されるような配置で設置されている。光源20の電源としては、太陽電池等を用いることができる。光源20に適切な容量の充電池を接続しておくことで、月の夜の期間(月の自転に応じて太陽光が直接届かなくなる期間。以下「夜間」と記す)においても光源20を発光させることができる。図1には、夜間において発光している光源20が描かれている。夜間においては、空間500が暗くなるので、光源20の発光パターンを良好に観測できる。一方、月の昼の期間(月の自転に応じて太陽光が直接当たる期間。以下「昼間」と記す)においては、光源20に太陽光が直接当たっていると、光源20の発光パターンが太陽光によってかき消されて観測できなくなる(カメラ14による撮像画像において検出できなくなる)場合がある。このため、可能な限り、昼間においても陰になるような場所、例えば図1に示す窪地40(クレーター等)に光源20を設置することが好ましい。
【0014】
また、本実施形態では、月面上の山頂30a、30b等のランドスケープ、及び、月面基地30c等のランドマークといった種々の物標も位置指標として用いられる。以下では、山頂30a、30b、及び月面基地30cを含む種々の物標のうち任意の1つを指す場合には「物標30」と記す。
【0015】
図2は、移動体10の機能構成を示すブロック図である。
移動体10は、CPU11(Central Processing Unit)(1以上の処理部、処理手段、1以上の制御部、制御手段、コンピュータ)と、RAM12(Random Access Memory)と、記憶部13と、カメラ14と、計時部15と、走行駆動部16と、姿勢角検出部17などを備える。このうちCPU11、RAM12及び記憶部13により測位装置100が構成される。移動体10の各部は、バス等の通信経路18を介して接続されている。
【0016】
CPU11は、記憶部13に記憶されているプログラム131を読み出して実行することで、移動体10の動作を制御する制御部として機能し、また、測位装置100による測位に係る処理を実行する処理部として機能するプロセッサである。なお、移動体10(及び測位装置100)は、複数のプロセッサ(複数のCPU等)を有していてもよく、本実施形態のCPU11が実行する複数の処理を、当該複数のプロセッサが実行してもよい。この場合には、複数のプロセッサが1以上の制御部及び1以上の処理部に相当する。これらの場合において、複数のプロセッサが共通の処理に関与してもよいし、あるいは、複数のプロセッサが独立に異なる処理を並列に実行してもよい。後者の場合には、複数のプロセッサのうちの一部が1以上の制御部に相当し、複数のプロセッサのうちの他の一部が1以上の処理部に相当してもよい。
【0017】
RAM12は、CPU11に作業用のメモリ空間を提供し一時データを記憶する。
【0018】
記憶部13は、コンピュータとしてのCPU11により読み取り可能な非一時的な記録媒体であり、プログラム131及び各種データを記憶する。記憶部13は、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)等の不揮発性メモリを含む。記憶部13に記憶されるデータとしては、カメラ14により撮像された画像に係る撮像画像データ132、各光源20の位置に係る情報を含む光源位置データ133、各種物標30の位置に係る情報を含む物標位置データ134、及び、測位装置100による測位履歴の情報を含む測位履歴データ135などがある。
【0019】
カメラ14は、所定のフレームレート(例えば、30fps、又は60fps等)で空間500を撮像し、その撮像画像データ132を測位装置100に出力する。図1に示すように、移動体10には、移動体10の前方及び後方をそれぞれ撮像する2つのカメラ14が設けられている。2台のカメラ14を用いる理由は、光源20の光(可視光通信用の光)の検知範囲を確保するためと、レンズ等の光学歪みの補正エラーを防ぐためである。なお、歪み補正が良好にできるのであれば、大広角レンズの単一のカメラ14を用いてもよい。
【0020】
計時部15は、現在時刻を算出して保持し、保持している時刻をCPU11に出力する。計時部15が算出する時刻は、例えば地球のUTC(協定世界時)であってもよいし、月の一昼夜(地球上の約27.3日に相当)を1日として当該1日における時間の経過を表すものであってもよい。
【0021】
走行駆動部16は、CPU11から送信される制御信号に従って、移動体10を走行させるための車輪の駆動(回転)や、移動方向の変更等を行う。よって、CPU11は、走行駆動部16に制御信号を送信することで、移動体10の移動速度や移動方向を制御することができる。
【0022】
姿勢角検出部17は、例えば、3軸方向の加速度を検出する3軸加速度センサ、及び、3軸周りの角速度を検出する3軸角速度センサ(ジャイロセンサ)を備える6軸センサである。姿勢角検出部17は、3軸加速度センサ、及び3軸角速度センサの出力値に基づいて、移動体10の姿勢角(ヨー、ピッチ、ロール)を導出して測位装置100に出力する。なお、姿勢角検出部17は、3軸加速度センサ、及び3軸角速度センサの出力値を測位装置100に出力し、測位装置100のCPU11がこれらの出力値に基づいて姿勢角を導出してもよい。
【0023】
(測位システムの動作)
次に、測位システム1の移動体10及び測位装置100の動作について説明する。
上述のとおり、移動体10の測位装置100は、移動体10の測位を所定の頻度で行う。以下に説明する測位に係る動作の主体は、測位装置100のCPU11であるが、便宜上、測位装置100を動作主体として記載する場合がある。
【0024】
測位装置100は、カメラ14により撮像された画像60(図3参照)において、空間500における位置が既知である2以上の位置指標を検出し、画像60における2以上の位置指標の位置と、空間500における2以上の位置指標の既知の位置と、に基づいて、空間500における移動体10の位置及び向きを導出する。以下では、画像60における位置指標の位置(画像60における位置指標に相当する画素の座標)を「画像内位置」と記し、空間500における位置指標の位置(空間500における位置指標のXYZ座標)を「空間内位置」と記す。
【0025】
上述のとおり、光源20は、位置指標の一態様である。測位装置100は、画像60において複数の光源20を検出した場合には、当該複数の光源20のうち少なくとも2つの光源20の画像内位置及び空間内位置に基づいて、移動体10の位置及び向きを導出する。上述のとおり、夜間は空間500が暗いため、通常、画像60から2つ以上の光源20を検出することができる。よって、夜間においては、測位装置100は、位置指標として光源20のみを用いて測位を行うことができる。
【0026】
一方、画像60において1つ以下の光源20しか検出できない場合には、測位装置100は、光源20とは異なる月面上の(空間500内にある)物標30を位置指標として用いる。すなわち、検出できた光源20が1つである場合には、測位装置100は、当該1つの光源20及び他の少なくとも1つの物標30の画像内位置及び空間内位置に基づいて移動体10の位置及び向きを導出する。また、画像60において光源20が1つも検出できなかった場合には、測位装置100は、少なくとも2つの物標30の画像内位置及び空間内位置に基づいて移動体10の位置及び向きを導出する。ここで、物標30は、画像60内及び空間500内において代表点(特徴点)の位置を特定することが可能な任意の物体とすることができる。例えば、山の稜線の一部(山頂等)、地平線の一部、特徴的な地形(岩石やクレーター等)のエッジ部、及び建造物(月面基地等)などが物標30となり得る。
画像60において検出できる光源20が1つ以下となる場合の例としては、昼間において太陽光により一部の光源20の光がかき消されて観測できなくなる場合や、移動体10と光源20との間に光を遮る障害物がある場合等が挙げられる。
【0027】
図3は、測位に用いられる画像60の例を示す図である。
画像60は、昼間においてカメラ14が空間500の一部を撮像して得られたものである。ここでは、窪地40において太陽光の陰ができているので、窪地40に位置する光源20aの光は画像60において検出することができる。一方、日なたに位置する光源20b、20cの光は、太陽光によりかき消されて画像60上では検出できなくなっている。このように、画像60において1つの光源20aしか検出できない場合には、測位装置100は、光源20aに加えて、画像60において物標30としての山頂30aや月面基地30cを検出し、測位に用いる。以下、図3の画像60において光源20a及び山頂30aを用いて測位を行う場合の動作を例に挙げて説明する。
【0028】
カメラ14から画像60を取得すると、測位装置100は、まず画像60において光源20aを検出する。詳しくは、測位装置100は、画像60を含む所定フレーム数の直近の画像群(動画像)から、光源20aの発光パターンを検出し、検出した発光パターンをデコードして光源IDを特定する。光源IDを特定する動作は、光源20を識別する動作に相当する。測位装置100は、光源位置データ133を参照して、特定した光源IDの光源20の空間内位置を取得する。
【0029】
図4は、光源位置データ133の内容例を示す図である。
光源位置データ133では、各光源IDに対して、その光源IDが付与されている光源20の空間500における設置位置(空間内位置)が対応付けられて記憶されている。図3に示す光源20aの光源IDは「1001」であり、対応する空間内位置は(X11,Y11,Z11)であるものとする。
【0030】
また、測位装置100は、以下の方法で、画像60において物標30(山頂30a)を検出する。
まず、測位装置100は、物標位置データ134を参照し、前回の測位結果(最後に導出した移動体10の位置)と、計時部15が計時している現在時刻と、に基づいて、画像60に写り得る物標30の候補を特定する。また、特定した物標30の候補に基づいて、画像60において現に写っている物標30(山頂30a)の識別結果を取得し、取得した識別結果に基づいて物標30の空間内位置を特定する。物標30の識別結果を取得する動作は、画像60において物標30を検出する動作に含まれる。
【0031】
図5は、物標位置データ134の内容例を示す図である。
物標位置データ134では、空間500を複数の区域R(区域R1、R2、…)に区分した場合に、各区域Rから観測可能な物標30の候補が区域Rごとに登録されている。物標位置データ134は、物標30の候補に係るデータとして、「名称」、「方位」、「位置」及び「観測可能時間帯」を含む。
「名称」は、物標30の候補の名称である。
「方位」は、区域Rの代表位置(例えば中央)から物標30の候補が観測される方位である。
「位置」は、予め測量された、空間500における物標30の候補のXYZ座標である。したがって、各物標30の空間内位置は既知である。
「観測可能時間帯」は、区域Rの代表位置から物標30の候補を観測可能な時間帯である。例えば、昼間であっても時間帯によっては高い山の陰に入って観測できなくなる物標30については、観測できなくなる時間帯を除いた時間帯が記録される。
【0032】
物標位置データ134において、前回の測位結果における移動体10の位置が属する区域Rを参照することで、移動体10の現在位置(厳密には、直近の位置)から観測可能な物標30の候補及びその方位を特定することができる。よって、特定された物標30の候補と、画像60に写っている物標30とを画像認識処理等により対比することで、画像60において写っている物標30の識別結果を取得することができ、当該識別結果から物標30を検出することができる。また、物標位置データ134から、識別された物標30の空間内位置を特定することができる。なお、前回の測位結果における移動体10の向きをさらに参照して、画像60が撮像された方位を特定することで、物標30の識別精度をより高めてもよい。
図3に示す画像60からは、物標30として山頂30aが検出され、その空間内位置(X21,Y21,Z21)が特定されたものとする。
【0033】
なお、物標30の識別方法及び検出方法は上述の方法に限られない。
例えば、区域Rを用いず、前回の測位結果における移動体10の位置(XYZ座標)から直接、画像60に写り得る物標30の候補を特定してもよい。例えば、空間500の3Dモデルを予め作成しておき、移動体10の現在位置(直近の位置)から見える物標30の候補を3Dモデルに基づくシミュレーションによって特定してもよい。当該シミュレーションにより特定された物標30の候補と、画像60とを対比することで、物標30の識別結果を取得することができる。また、上記3Dモデルに代えて、高さの情報を含む月面の地図を用いて物標30の候補を特定してもよい。
また、機械学習モデルに画像60を入力することで、画像60に写っている物標30を特定してもよい。すなわち、月面上の複数の地点から観測できる物標30の位置、形状及び大きさ等を予め学習させた機械学習モデルを用意し、当該機械学習モデルに、画像60及び前回の測位結果(移動体10の位置、及び、必要な場合にはさらに向き)を入力することで、画像60内に物標30の候補が写っているか否か、及び、写っている場合における物標30の識別結果を出力として取得してもよい。上記の機械学習モデルは、記憶部13に記憶されていてもよいし、外部装置に記憶されていてもよい。機械学習モデルが外部装置に記憶されている場合には、移動体10が有する図示略の通信部により画像60等の入力データを外部装置の機械学習モデルに入力し、出力結果を外部装置から受信すればよい。
いずれの場合にも、特定された物標30の空間内位置は、物標30と空間内位置とが対応付けられたテーブルデータ(物標位置データ134でもよい)から取得することができる。
【0034】
測位装置100は、画像60において位置指標としての光源20a及び山頂30aを検出すると、画像60における光源20a及び山頂30aの画像内位置と、空間500における光源20a及び山頂30aの空間内位置と、に基づいて、空間500における移動体10の位置及び向きを導出する。
【0035】
図6は、移動体10の位置の導出方法を説明する図である。
ここでは、画像60における光源20aの画像内位置が点P1(Px,Py)であり、山頂30aの画像内位置が点Q1(Qx,Qy)であるものとする。測位装置100は、画像60における光源20aの画像内位置(点P1)及び山頂30aの画像内位置(点Q1)と、空間500における光源20aの空間内位置(X1,Y1,Z1)及び山頂30aの空間内位置(X2,Y2,Z2)と、に基づいて、三角測量の原理により、移動体10(カメラ14)の空間内位置(X0,Y0,Z0)を導出する(ただし、ここではZ0は固定)。また、測位装置100は、移動体10の空間内位置(X0,Y0,Z0)と、画像60において光源20a及び/又は山頂30aが写っている位置とから、移動体10(カメラ14)の向きを導出する。
この方法により、移動体10(カメラ14)の高さ及び姿勢角の2自由度(ピッチ、ロール)が固定されている前提で、移動体10の位置及び向き(水平方位)を導出することができる。なお、路面に凹凸がある場合等、移動体10の姿勢角が変動し得る場合には、姿勢角検出部17による姿勢角の検出結果に基づいて補正された位置及び向きを導出してもよい。例えば、姿勢角検出部17による姿勢角の検出結果に基づいて画像60の向き(画像60における光源20a及び山頂30aの位置)等を補正した上で位置を導出してもよい。
【0036】
ところで、画像60における物標30の位置の検出精度は、画像60における光源20の位置の検出精度よりも低くなりやすい。これは、物標30は発光体ではないので画像60上で周囲の物体と区別しにくいこと、及び、物標30を識別するための他の処理(画像認識処理等)の精度が影響すること等による。このため、画像60において、1つの光源20の他に複数の物標30を検出可能である場合には、1つの光源20と、検出可能な複数の物標30のうち少なくとも2つの物標30と、を位置指標として用いて(すなわち、3つ以上の位置指標を用いて)測位を行うことで、測位精度を高めてもよい。例えば、図3に示す例では、光源20a及び物標30としての山頂30aに加えて、物標30としての月面基地30c(例えば、その角部の特徴点(画像内位置:点Q2))をさらに測位に用いてもよい。
【0037】
図7は、画像60の他の例を示す図である。
図7に示す画像60は、昼間においてカメラ14が空間500のうち図3とは異なる一部を撮像して得られたものである。この画像60からは、2つの窪地40の陰に位置する2つの光源20a(画像内位置:点P1)及び光源20d(画像内位置:点P2)の発光パターンを観測できるので、これらの光源20a、20dを検出することができる。また、光源位置データ133を参照して光源20a、20dの空間内位置を取得することができる。よって、測位装置100は、画像60における光源20a、20dの画像内位置と、空間500における光源20a、20dの空間内位置と、に基づいて、図6と同様の方法により移動体10の位置及び向きを導出する。この場合には、図6において、山頂30aを光源20dに置き換え、画像60内の点Q1を、光源20dに対応する点P2に置き換えればよい。
【0038】
また、画像60から2つの光源20を検出できる場合に、さらに光源20以外の物標30を位置指標として用いてもよい。すなわち、光源20及び物標30を含む3つ以上の位置指標を用いて測位を行ってもよい。例えば、図7に示す画像60においては、光源20a、20dの他に、物標30としての月面基地30c(画像内位置:点Q2)、及び山頂30b(画像内位置:点Q3)を検出可能であるので、光源20a、20dに加えて、月面基地30c及び山頂30bのうち少なくとも一方をさらに位置指標として用いてもよい。これにより、2つの光源20のみを用いた場合よりもさらに測位精度を高めることができる。
【0039】
また、3つ以上の位置指標を用いることで、より多くの自由度に対応した測位を行うことができる。すなわち、2つの位置指標を用いた場合には、水平位置(XY座標)及び水平方位の3自由度の測位が可能であるのに対し、3つ以上の位置指標を用いることで、鉛直方向座標(Z座標)及び姿勢角の2自由度(ピッチ、ロール)のうちの少なくとも一部を加えた4自由度以上の測位が可能になる。理想的には、6つの位置指標を用いることで、3次元座標(水平位置及び高さ)及び3軸姿勢角(ヨー(水平方位)、ピッチ、ロール)の6自由度の測位が可能となる。7点以上の位置指標が検出されている場合には、位置指標として光源20を優先的に用いることで、さらに測位精度を高めることができる。
【0040】
次に、上述した測位を行いつつ移動体10を移動させるためにCPU11が実行する測位移動処理について説明する。
図8は、測位移動処理の制御手順を示すフローチャートである。
測位移動処理は、月面上において移動体10が動作を開始した場合に開始される。
【0041】
測位移動処理が開始されると、CPU11は、カメラ14により撮像された画像60を取得する(ステップS101)。また、CPU11は、夜間であるか否かを判別する(ステップS102)。ここでは、CPU11は、計時部15により計時されている現在時刻に基づいて夜間か否かの判別を行う。あるいは、画像60の輝度に基づいて夜間か否かの判別を行ってもよい。例えば、画像60の画素の平均輝度が所定の基準輝度以下であれば夜間と判別してもよい。
【0042】
夜間であると判別された場合には(ステップS102で“YES”)、CPU11は、上述の方法により画像60において光源20の検出を試み、画像60において複数の光源20を検出したか否かを判別する(ステップS103)。複数の光源20を検出したと判別された場合には(ステップS103で“YES”)、CPU11は、検出した複数の光源20のうち2以上の光源20の画像内位置及び空間内位置に基づいて測位を行い(すなわち、移動体10の位置及び向きを導出し)、測位結果を測位履歴データ135に記録する(ステップS104)。
【0043】
一方、画像60において複数の光源20を検出できなかったと判別された場合には(ステップS103で“NO”)、CPU11は、走行駆動部16に制御信号を送信して移動体10の移動を停止させる(ステップS105)。自装置の位置や向きが不明な状態で移動すると、目的地へのルートを大きく外れたり、不測の事故に繋がったりする可能性があるためである。ステップS105が終了すると、CPU11は、処理をステップS101に戻す。
【0044】
ステップS102において、夜間ではない(すなわち、昼間である)と判別された場合には(ステップS102で“NO”)、CPU11は、画像60において光源20の検出を試み、画像60において複数の光源20を検出したか否かを判別する(ステップS106)。複数の光源20を検出したと判別された場合には(ステップS106で“YES”)、CPU11は、処理をステップS104に移行させ、2以上の光源20を用いて測位を行う。
【0045】
画像60において複数の光源20を検出できなかったと判別された場合には(ステップS106で“NO”)、CPU11は、測位履歴データ135に前回の測位結果が記録されているか否かを判別する(ステップS107)。前回の測位結果が記録されていないと判別された場合には(ステップS107で“NO”)、CPU11は、物標30の識別及び検出に必要な自装置の現在位置を取得できないため、処理をステップS105に移行させて移動体10の移動を停止させる。
【0046】
前回の測位結果が記録されていると判別された場合には(ステップS107で“YES”)、CPU11は、画像60において1つの光源20を検出したか否かを判別する(ステップS108)。1つの光源20を検出したと判別された場合には(ステップS108で“YES”)、CPU11は、前回の測位結果、及び計時部15が計時する現在時刻に基づいて、カメラ14により撮像され得る物標30の候補を特定して取得する(ステップS109)。
【0047】
CPU11は、画像60において、候補に合致する物標30の検出(物標30の識別結果の取得)を試み、1以上の物標30を画像60から検出したか否かを判別する(ステップS110)。物標30を検出できなかったと判別された場合には(ステップS110で“NO”)、CPU11は、処理をステップS105に移行させて移動体10の移動を停止させる。1以上の物標30を検出したと判別された場合には(ステップS110で“YES”)、CPU11は、ステップS108で検出した1つの光源20、及びステップS110で検出した1以上の物標30の画像内位置及び空間内位置に基づいて測位を行い、測位結果を測位履歴データ135に記録する(ステップS111)。
【0048】
一方、ステップS108において、光源20を1つも検出できなかったと判別された場合には(ステップS108で“NO”)、CPU11は、ステップS109と同様に物標30の候補を特定して取得する(ステップS112)。
【0049】
CPU11は、画像60において、候補に合致する物標30の検出を試み、2以上の物標30を画像60から検出したか否かを判別する(ステップS113)。2以上の物標30を検出できなかったと判別された場合には(ステップS113で“NO”)、CPU11は、処理をステップS105に移行させて移動体10の移動を停止させる。2以上の物標30を検出したと判別された場合には(ステップS113で“YES”)、CPU11は、検出した2以上の物標30の画像内位置及び空間内位置に基づいて測位を行い、測位結果を測位履歴データ135に記録する(ステップS114)。
【0050】
ステップS114が終了した場合、CPU11は、移動体10の移動速度を所定の基準値未満の低速に低減させる(ステップS115)。物標30のみを位置指標として用いて測位を行った場合、2つの光源20を位置指標とした測位と比較して位置精度が低くなるため、移動体10の移動軌跡の、予定のルートからの誤差が大きくなりやすい。よって、ステップS115では、移動体10の移動速度を低減させることで、この誤差の拡大を抑制する。ステップS115の開始時点において既に移動速度が基準値未満に低減されている場合には、ステップS115は省略される。
なお、ステップS111が終了した場合にも、処理をステップS115に移行させて移動速度を低減させてもよい。すなわち、1以上の物標30を位置指標として用いて測位を行った場合に移動体10の移動速度を低減させることとしてもよい。ただし、1以上の物標30を位置指標として用いている場合であっても、他に2以上の光源20を位置指標として用いている場合には、移動体10の移動速度を低減させないこととしてもよい。
【0051】
ステップS104、S111、S115のいずれかが終了すると、CPU11は、測位結果に基づいて、目的地へ移動するルートを決定し、当該ルートに沿って移動体10を移動させる(ステップS116)。目的地へのルートは、ルート上の任意の地点において、複数の光源20を観測可能となるように設定される。CPU11は、目的地に到着したか否かを判別する(ステップS117)。CPU11は、目的地に到着していないと判別された場合には(ステップS117で“NO”)、処理をステップS101に戻し、目的地に到着したと判別された場合には(ステップS117で“YES”)、測位移動処理を終了させる。
【0052】
なお、図8に示したフローチャートに代えて、図9に示すフローチャートを用いてもよい。図9は、画像60における光源20の検出状況によらず、画像60において物標30が検出可能であればできる限り位置指標として用いるフローである。これにより、画像60における光源20及び物標30の検出状況に応じて、可能な限り測位精度を高めることができる。
【0053】
図9に示す測位移動処理のステップS201~S205は、図8のステップS101~S105と同一であるので、説明を省略する。
ステップS202において、夜間ではないと判別された場合には(ステップS202で“NO”)、CPU11は、測位履歴データ135に前回の測位結果が記録されているか否かを判別する(ステップS206)。前回の測位結果が記録されていないと判別された場合には(ステップS206で“NO”)、CPU11は、処理をステップS203に移行させる。前回の測位結果が記録されていると判別された場合には(ステップS206で“YES”)、CPU11は、前回の測位結果、及び計時部15が計時する現在時刻に基づいて、カメラ14により撮像され得る物標30の候補を特定して取得する(ステップS207)。
【0054】
CPU11は、画像60において、取得した物標30の候補に合致する物標30の検出を試み、1以上の物標30を画像60から検出したか否かを判別する(ステップS208)。物標30を検出できなかったと判別された場合には(ステップS208で“NO”)、CPU11は、処理をステップS203に移行させる。1以上の物標30を検出したと判別された場合には(ステップS208で“YES”)、CPU11は、画像60においてさらに光源20の検出を試み、光源20及び/又は物標30を2つ以上検出したか否かを判別する(ステップS209)。光源20及び/又は物標30を1つ以下しか検出できなかったと判別された場合には(ステップS209で“NO”)、CPU11は、測位を実行できないため、処理をステップS205に移行させて移動体10の移動を停止させる。光源20及び/又は物標30を2つ以上検出したと判別された場合には(ステップS209で“YES”)、CPU11は、検出した光源20及び/又は物標30の画像内位置及び空間内位置に基づいて測位を行い、測位結果を測位履歴データ135に記録する(ステップS210)。なお、位置指標としての光源20及び物標30を合わせて7つ以上検出した場合には、CPU11は、ステップS210の開始前に、光源20を優先して6つの位置指標を選択する。
【0055】
ステップS210又はS204が終了すると、CPU11は、処理をステップS211に移行させる。ステップS211及びS212は、図8のステップS116及びS117と同一であるので、説明を省略する。
【0056】
(効果)
以上のように、本実施形態に係る測位装置100は、CPU11を備え、CPU11は、空間500を移動する移動体10に設けられたカメラ14により撮像された画像60において、光源20と、光源20とは異なる物標30(山頂30a等)と、を検出し、画像60における光源20及び物標30の位置と、空間500における光源20及び物標30の既知の位置と、に基づいて空間500における移動体10の位置を導出する。これにより、光源20の光が観測できない環境下においても、2つの位置指標を用いた測位を行うことができる。例えば、月面の昼間に強い太陽光の影響により光源20が観測できない状況においても測位が可能となる。よって、より確実に測位を行うことができる。
【0057】
また、CPU11は、画像60において、1つの光源20と、物標30と、を検出した場合に、画像60における1つの光源20及び物標30の位置と、空間500における1つの光源20及び物標30の既知の位置と、に基づいて移動体10の位置を導出する。また、画像60において光源20を検出し、かつ、検出した光源20が複数の光源20である場合には、画像60における複数の光源20のうち少なくとも2つの光源20の位置と、空間500における少なくとも2つの光源20の既知の位置と、に基づいて移動体10の位置を導出する。これにより、検出可能な光源20が1つである場合には、さらに物標30を位置指標として用いることで測位を可能とし、複数の光源20が検出可能である場合には、2以上の光源20を位置指標として用いて高精度に測位を行うことができる。よって、環境によらずに確実に測位を行いつつ、好適な環境においては高精度な測位を行うことができる。
【0058】
また、CPU11は、画像60において光源20及び物標30を検出し、かつ、検出した光源20が複数の光源20である場合に、画像60における複数の光源20のうち少なくとも2つの光源20及び物標30の位置と、空間500における少なくとも2つの光源20及び物標30の既知の位置と、に基づいて移動体10の位置を導出する。このように、2以上の光源20を検出可能な場合においてさらに物標30を位置指標として用いることで、より高精度な測位を行うことができる。
【0059】
また、CPU11は、画像60において光源20及び物標30を検出し、かつ、検出した物標30が複数の物標30である場合に、画像60における光源20及び複数の物標30のうち少なくとも2つの物標30の位置と、空間500における光源20及び少なくとも2つの物標30の既知の位置と、に基づいて移動体10の位置を導出する。このように、検出可能な光源20が1つである場合に2以上の物標30をさらに位置指標として用いることで、測位精度を高めることができる。
【0060】
また、CPU11は、最後に導出した移動体10の位置に基づいて、画像60に写っている物標30の識別結果を取得し、取得した識別結果に基づいて空間500における物標30の既知の位置を特定する。これにより、移動体10の現在位置(直近の位置)に応じて物標30を適切に検出することができる。
【0061】
また、CPU11は、さらに現在時刻に基づいて、画像60に写っている物標30の識別結果を取得する。これにより、時間帯によって観測できなくなることが予め判別されている物標30を検出対象から除外することができる。よって、より適切に物標30を検出することができる。
【0062】
また、光源20は、固有の発光パターンで発光し、CPU11は、画像60から特定される発光パターンに基づいて光源20を識別し、光源20の識別結果に基づいて空間500における光源20の既知の位置を特定する。これにより、電波の送受信を伴わずに光源20の位置を特定することができる。また、撮像された画像60のピクセル単位の分解能で高精度に光源20の位置を特定できるため、測位精度を高めることができる。
【0063】
また、本実施形態に係る移動体10は、上記の測位装置100と、カメラ14と、を備えるので、より確実に測位を行うことができる。
【0064】
また、移動体10は、制御部としてのCPU11を備え、CPU11は、処理部としてのCPU11が空間500における物標30の位置に基づいて移動体10の位置を導出した場合に、移動体10の移動速度を基準値未満の低速に低減させる。物標30を位置指標として用いた場合には、測位される位置の精度が低くなりやすいところ、移動体10の移動速度を低減させることで、移動体10の位置の、予定ルートからの誤差の拡大を抑制することができる。
【0065】
また、本実施形態に係る測位方法は、画像60において光源20及び物標30を検出し、画像60における光源20及び物標30の位置と、空間500における光源20及び物標30の既知の位置と、に基づいて空間500における移動体10の位置を導出する。これにより、より確実に測位を行うことができる。
【0066】
また、本実施形態に係るプログラム131は、CPU11を、画像60において光源20及び物標30を検出し、画像60における光源20及び物標30の位置と、空間500における光源20及び物標30の既知の位置と、に基づいて空間500における移動体10の位置を導出する処理手段として機能させる。これにより、より確実に測位を行うことができる。
【0067】
(その他)
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。
例えば、移動体10は、自律走行する月面探査車に限られず、人が操縦するローバー(自動運転モードを含む)やロボット等であってもよい。
【0068】
また、測位システム1は、地球上で運用してもよい。例えば、倉庫内の空間において移動する移動体としての車両(フォークリフト等)の測位に本発明を適用してもよい。
【0069】
また、上記実施形態では、光源20の発光パターンをデコードして光源IDを特定し、光源IDから光源20の空間内位置を取得したが、光源20の発光パターンが十分な情報量を含み得る場合には、発光パターンをデコードすることで直接空間内位置を取得できるようにしてもよい。
【0070】
また、測位装置100は、画像60に基づく測位においては移動体10の位置の導出のみ行い、移動体10の向きについては他の方法で(例えば姿勢角検出部17による検出結果に基づいて)導出してもよい。
【0071】
また、光源20を用いた可視光通信として、赤、緑及び青の3色の光の組み合わせを用いる例を挙げて説明したが、これに限られない。例えば、用いる色を変更してもよいし、用いる色の数を2色以下又は4色以上としてもよい。また、高速で変調させた光により情報を送信するLi-Fi(Light Fidelity)を用いてもよい。また、可視光通信に、代えて、赤外線又は紫外線を用いる光通信としてもよい。
【0072】
また、以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として記憶部13のHDD、SSDを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ、CD-ROM等の情報記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【0073】
また、上記実施形態における移動体10及び測位装置100の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
【0074】
本発明の実施の形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
【符号の説明】
【0075】
1 測位システム
10 移動体
11 CPU
12 RAM12
13 記憶部
131 プログラム
14 カメラ(撮像部)
15 計時部
16 走行駆動部
17 姿勢角検出部
20、20a~20d 光源
30 物標
30a、30b 山頂(物標)
30c 月面基地(物標)
40 窪地
60 画像
100 測位装置
500 空間
図1
図2
図3
図4
図5
図6
図7
図8
図9