以下、添付図面を参照しながら、本発明にかかる測距装置、移動システム及び測距方法の実施形態を詳細に説明する。
本発明の移動システムは、測距装置と移動体とを備える移動システムであればよい。
移動体としては、例えば、航空機、ロボット、自動車、及び船舶などが挙げられるが、これらに限定されるものではない。また、移動体は、自律して移動する移動体であっても、人間が操縦又は運転する移動体であっても、人間がリモートコントローラを用いて遠隔操縦又は遠隔運転する移動体であってもよい。また、移動体は、人間が搭乗又は乗車可能なものであっても、人間が搭乗又は乗車できないものであってもよい。
測距装置は、移動体に設けられ、当該移動体の周囲に存在する物体(対象物)との距離を測距することで、移動体の移動を支援するものである。なお、測距装置は、移動体の外部に設けられていてもよいし、内部に設けられていてもよい。
例えば、移動体が自律して移動する移動体であれば、測距装置は、移動体の周囲に存在する物体(対象物)との距離を測距することで、移動体の自己位置を推定し、移動体は、測距装置の自己位置推定結果に基づいて自律移動を制御するようにすることができる。これにより、移動体は、障害物等を避けながら自律移動することができる。
また例えば、移動体が自動車であれば、測距装置は、自動車の移動方向に存在する物体(対象物)との距離を測距することで、自動車の進路上に存在する障害物等を検出し、自動車は、当該自動車に設けられたディスプレイやスピーカなどを用いて、測距装置により検出された障害物等を運転者に報知することができる。これにより、運転者は、障害物等を避けたり、障害物等の手前で停止したりするように自動車を運転することができる。
本実施形態では、移動体が、自律飛行する無人航空機(例えば、DroneやUAV(Unmanned aerial vehicle))であり、測距装置が、移動体の自己位置を推定し、移動体が、自己位置推定結果に基づいて自律移動を制御する移動システムを例に取り説明するが、これに限定されるものではない。
図1は、本実施形態の移動システム1の一例を示す模式図である。図1に示すように、移動システム1は、移動体10と、測距装置100とを、備える。
図1に示すように、移動体10は、機体11と、機体11の前後左右に設けられたプロペラ12〜15と、を備えている。移動体10は、プロペラ12〜15が回転駆動することにより飛行するように構成されている。
また、機体11の下部には、測距装置100が設けられている。なお本実施形態では、飛行中の移動体10のバランスを保つため、移動体10の重心軸と測距装置100の重心軸とが同一の軸1001となるように、機体11の下部に測距装置100が設けられている。
図2は、本実施形態の測距装置100の一例を示す斜視図であり、図3は、本実施形態の測距装置100の一例を示す平面図である。図1〜図3に示すように、測距装置100は、筐体120と、筐体120に取り付け可能(着脱可能)なアタッチメント110と、を備える。
本実施形態では、筐体120の前面中央部に溝が形成されており、この溝にアタッチメント110を嵌め合せることで、筐体120の前面中央部にアタッチメント110を取り付けるように構成されている。このように本実施形態では、測距装置100の筐体120とアタッチメント110とが別体型の構成である場合を例に取り説明するが、筐体120とアタッチメント110とが一体型の構成であってもよい。
また本実施形態では、アタッチメント110に、電磁波に基づく測距を行うレーザ測距装置が内蔵されており、筐体120に撮像に基づく測距を行うステレオカメラが内蔵されているものとするが、これに限定されるものではない。
なお、レーザ測距装置は、詳細には、出力光学系111から射出されたレーザ光と受光光学系112により受信されたレーザ光の反射光との時間差に基づいて測距を行う。本実施形態では、レーザ測距装置は、レーザ光で測定領域を光走査して反射光の受光時間や位相差から距離情報を取得するスキャン方式で測距を行う場合を例に取り説明するが、レーザ光を測定領域に全体照射し、反射光を撮像して画素ごとの受光した光の位相差から距離情報を取得する非スキャン方式で測距を行うようにしてもよい。
また、ステレオカメラは、詳細には、撮像光学系121A及び撮像光学系121A用の撮像素子であるCMOS(Complementary Metal Oxide Semiconductor)311Aにより撮像された撮像画像と、撮像光学系121B及び撮像光学系121B用の撮像素子であるCMOS311Bにより撮像された撮像画像と、を用いた視差演算により測距を行う。
また本実施形態では、レーザ測距装置による測距により3次元空間の計測が可能であり、同様に、ステレオカメラによる測距により3次元空間の計測が可能であるが、本実施形態では、レーザ測距装置による測距により計測される3次元空間の座標軸と、ステレオカメラによる測距により計測される3次元空間の座標軸と、を一致させる。このため本実施形態では、レーザ測距装置の基準軸とステレオカメラの基準軸とが同一の軸1011となり、かつレーザ測距装置の受光面とステレオカメラの撮像面とが同一の軸1012上に位置するように、測距装置100は設計されている。
レーザ測距装置の基準軸は、スキャン方式においては、レーザ光の照射範囲(図3に示す例では、直線113Aから直線113Bまでの範囲)の中心軸であり、例えば、出力光学系111の光軸が挙げられる。なお、レーザ測距装置の基準軸は、レーザ測距装置の出力する距離情報の座標軸がステレオカメラの出力する距離情報の座標軸と一致するように軸が設定されていればよく、上記の例に限定されるものではない。これは非スキャン方式においても同様である。ステレオカメラの基準軸は、ステレオカメラの撮像範囲(図3に示す例では、直線122Aから直線122Bまでの範囲)の中心軸であり、例えば、ステレオカメラの中心軸が挙げられる。ステレオカメラの中心軸は、例えば、撮像光学系121Aの光軸と撮像光学系121Bの光軸との中心に位置する軸が挙げられる。
レーザ測距装置の受光面は、例えば、受光光学系112用の受光素子221が挙げられ、ステレオカメラの撮像面は、例えば、撮像光学系121A用の撮像素子であるCMOS311A及び撮像光学系121B用の撮像素子であるCMOS311Bが挙げられる。
このため本実施形態では、筐体120にアタッチメント110を取り付けた場合に、レーザ測距装置の基準軸とステレオカメラの基準軸とが同一の軸1011となるように、撮像光学系121A及び撮像光学系121Bが筐体120の両端に配置されるとともに、出力光学系111がアタッチメント110に配置されている。
同様に本実施形態では、筐体120にアタッチメント110を取り付けた場合に、レーザ測距装置の受光面とステレオカメラの撮像面とが同一の軸1012上に位置するように、CMOS311A及びCMOS311Bが筐体120の両端に配置されるとともに、受光素子221がアタッチメント110に配置されている。
図4は、本実施形態の移動システム1の構成の一例を示すブロック図である。図4に示すように、測距装置100は、第1の測距部200と、第2の測距部300と、制御部400と、を備える。第1の測距部200は、レーザ測距装置による測距に係る構成であり、第2の測距部300は、ステレオカメラによる測距に係る構成であり、制御部400は、第1の測距部200及び第2の測距部300の制御、並びに移動体10との通信に係る構成である。
図5は、本実施形態の第1の測距部200のハードウェア構成の一例を示すブロック図である。第1の測距部200は、上下方向、及び左右方向に照射方向を変えながらレーザ光を照射し、物体で反射したレーザ光である反射光を受光することで、物体までの距離等を検出する。
第1の測距部200は、送光部210、受光部220、及びECU(Engine Control Unit)230などを備える。
送光部210は、パルス状のレーザ光を出射するLD(Laser diode:半導体レーザダイオード)211、光スキャナ212、LD211からの光を光スキャナ212に導くための入力光学系213、光スキャナ212を通過したレーザ光の照射角等を制御するための出力光学系111などを備える。
LD211は、LD駆動回路214を介してECU230に接続されており、ECU230からのLD駆動信号により定期的に又は連続してレーザ光を出射する。このLD駆動信号は時間計測回路243にも入力される。なお、レーザ光は、主に半導体レーザが用いられるが、固体レーザ、ガスレーザ、色素レーザなど発光原理はどのようなものでもよい。また、レーザ光は、指向性、収束性の良好な電磁波の一種である。
光スキャナ212は、光スキャナ駆動回路215を介しECU230と接続されており、所定の固定周波数でLD211から出射されたレーザ光を水平方向に繰り返し走査する。光スキャナ212としては、例えば、ポリゴンミラー、ガルバノミラー、及びDMD(Digital Mirror Device)などが挙げられるが、これらに限定されるものではない。
光スキャナ212におけるレーザ光の走査角は、走査角モニタ216によって検出され、ECU230に出力される。ECU230は、レーザ光の走査角を光スキャナ駆動信号にフィードバックすることにより走査角度(方位・傾斜)及び走査周波数を制御する。
受光部220は、受光光学系112及び受光素子221などを備える。物体から反射された反射光は、受光光学系112等を介し受光素子221に入射する。受光素子221は、フォトダイオード等により形成されており、反射光における光強度に対応する電圧値の電気信号を出力する。受光素子221より出力された電気信号は、増幅器241において増幅され、コンパレータ242に出力される。
コンパレータ242では、増幅器241からの出力電圧の値を基準電圧V0と比較し、出力電圧の値がV0よりも大きくなったときに、所定の受光信号を時間計測回路243に出力する。
時間計測回路243は、LD駆動信号が出力されてから受光信号が発生するまでの時間、即ち、レーザ光を出射した時刻と反射光を受光した時刻との時間差をECU230に出力する。ECU230は、この時間差に基づいて、物体までの距離を算出する。
図6は、本実施形態の第2の測距部300のハードウェア構成の一例を示すブロック図である。撮像光学系121Aを通過した被写体光は、CMOS311Aに結像され、撮像光学系121Bを通過した被写体光は、CMOS311Bに結像される。CMOS311Aは、撮像面に結像された光学像を電気信号に変換し、アナログの画像データとして出力し、CMOS311Bは、撮像面に結像された光学像を電気信号に変換し、アナログの画像データとして出力する。なお、撮像素子としてCMOS311A及びCMOS311Bの代わりにCCD(Charge Coupled Device)を採用してもよい。
CMOS311Aから出力された画像データは、CDS(Correlated Double Sampling:相関2重サンプリング)回路312Aによりノイズ成分を除去され、A/D変換器313Aによりデジタル値に変換され、画像処理回路314Aに出力される。CMOS311Bから出力された画像データは、CDS回路312Bによりノイズ成分を除去され、A/D変換器313Bによりデジタル値に変換され、画像処理回路314Bに出力される。
なお、CMOS311A、311B、CDS回路312A、312B、及びA/D変換器313A、313Bは、タイミング信号発生器316により、動作するタイミングが制御されている。
画像処理回路314A、314Bは、それぞれ、画像データを一時格納するSDRAM(Synchronous Dynamic Random Access Memory)317を用いて、RGB→YCrCb変換処理、ホワイトバランス制御処理、コントラスト補正処理、エッジ強調処理、及び色変換処理などの各種画像処理を行う。なお、ホワイトバランス制御処理は、画像情報の色濃さを調整する画像処理であり、コントラスト補正処理は、画像情報のコントラストを調整する画像処理であり、エッジ強調処理は、画像情報のシャープネスを調整する画像処理であり、色変換処理は、画像情報の色合いを調整する画像処理である。また、画像処理回路314Aにより各種画像処理が施された画像データ、及び画像処理回路314Bにより各種画像処理が施された画像データは、それぞれ、カラー画像である。
また、SDRAM317に記憶された画像処理が施された画像データは、画像圧縮伸張回路318により圧縮され、メモリカード319に記録される。画像圧縮伸張回路318は、画像処理回路314A、314Bから出力される画像データを圧縮してメモリカード319に出力するとともに、メモリカード319から読み出した画像データを伸張して画像処理回路314A、314Bに出力する回路である。
なお、タイミング信号発生器316、画像処理回路314A、314B、画像圧縮伸張回路318、及びメモリカード319は、CPU(Central Processing Unit)315により制御されている。ROM(Read Only Memory)321は、CPU315により実行されるプログラムなどを格納した読み出し専用メモリであり、RAM(Random Access Memory)322は、CPU315が各種の処理過程で利用するワークエリア、及び各種データ格納エリアなどを有する読み出し書き込み自在のメモリである。
CPU315は、画像処理回路314Aにより各種画像処理が施された画像データ、及び画像処理回路314Bにより各種画像処理が施された画像データ、即ち、ステレオ画像を用いた視差演算を行って視差画像を生成し、生成した視差画像に基づいて、視差画像に写る物体までの距離を求める。例えば、CPU315は、ステレオ画像を輝度画像(Y画像)に変換し、変換した輝度画像に基づいて、視差画像を生成する。なお、視差は、画素毎又は画素ブロック毎に算出され、視差画像では、画素又は画素ブロック毎に視差情報が対応づけられる。画素ブロックは、1以上の画素で構成されるブロックである。これにより、視差画像は、視差画像に写る物体(対象物)の3次元空間上での3次元位置(3次元座標)を表すことができる。なお、視差画像生成は、CPU315ではなくFPGA(field-programmable gate array)等で実現された視差画像生成専用の回路で実現するようにしてもよい。
第2の測距部300の主要な構成は、バスライン19によって相互接続されている。
図7は、本実施形態の制御部400のハードウェア構成の一例を示すブロック図である。制御部400は、CPU411、RAM412、フラッシュROM413、I/O414、及びネットワークI/F415を備える。
CPU411は、フラッシュROM413に記憶されたプログラム420を実行して制御部400の全体の動作を制御する。プログラム420は、メモリカード416に記憶された状態で配布されてもよいし、サーバから携帯電話網や無線LAN(Local Area Network)網などの通信網を経由してダウンロードされることで配布されてもよい。RAM412は、CPU411がプログラムを実行する際のワークエリア(プログラムやデータが一時的に記憶される)として使用される。
CPU411は、第1の測距部200の測距結果及び第2の測距部300の測距結果に基づいて、自己位置推定を行ったり、第1の測距部200に再測距を行わせたりする。
I/O414は、I2CやUARTなどの入出力インタフェースである。ネットワークI/F415は、イーサネット(登録商標)などの車載ネットワーク上で通信するための通信装置である。
図8は、本実施形態の移動体10のハードウェア構成の一例を示すブロック図である。移動体10は、主に、カメラ524、制御装置519、GPSアンテナ512、GPS受信器525、プロペラモータ545A〜545D、及び姿勢駆動部541から構成される。
カメラ524は、撮像素子としてCCD又はCMOSセンサ等を有し、静止画及び動画を撮像可能であり、取得した画像はデジタル信号の画像データとして出力可能である。
GPSアンテナ512及びGPS受信器525は、移動体10の絶対座標を測定する。なお、GPSアンテナ512及びGPS受信器525としては、後処理キネマティックGPS又はリアルタイムキネマティックGPS(RTK−GPS)が用いられるのが好ましい。RTK−GPSは、高精度の測定が可能である。
プロペラモータ545A〜545Dは、それぞれ、プロペラ12〜15を回転駆動するためのモータである。
制御装置519は、主に、制御演算部520、記憶部522、撮像制御部523、飛行制御部526、方位センサ527、ジャイロユニット528、通信部529、及び姿勢制御部549を、備える。
記憶部522は、例えば、RAMやROMであり、プログラム格納部とデータ格納部とを含む。プログラム格納部には、カメラ524の撮像を制御する為の撮像プログラム、自律飛行する為の飛行制御プログラム、カメラ524の姿勢を制御する為の姿勢制御プログラム、及び飛行計画プログラムなどのプログラムが格納されている。データ格納部には、カメラ524で撮像した撮像データ、並びにGPSアンテナ512及びGPS受信器525によって取得した絶対座標(地表座標)などのデータが格納される。
制御演算部520は、記憶部522に格納されたプログラムに基づいて、移動体10の全体の動作を制御する。
撮像制御部523は、カメラ524による静止画や動画の撮像に関する制御を行う。方位センサ527は、移動体10の向きを検出する。ジャイロユニット528は、移動体10の飛行状態での姿勢を検出する。飛行制御部526は、測距装置100の制御部400により推定された自己位置、方位センサ527により検出された移動体10の向き、及びジャイロユニット528により検出された移動体10の姿勢などに基づいて、プロペラモータ545A〜545Dの駆動を制御することにより、移動体10の自律飛行を制御する。なお、飛行制御部526は、測距装置100の制御部400により推定された自己位置の代わりに、GPSアンテナ512及びGPS受信器525によって取得した絶対座標を用いて、移動体10の自律飛行を制御してもよい。姿勢制御部549は、姿勢駆動部541を駆動することによりカメラ524の姿勢を制御する。
通信部529は、測距装置100と通信して、測距装置100により推定された自己位置を示す自己位置情報(自己位置推定結果)を取得したり、カメラ524で撮像した撮像データやGPSアンテナ512及びGPS受信器525により測定された移動体10の絶対座標を基地局などに無線送信したりする等の機能を有する。
図9は、本実施形態の移動システム1の機能構成の一例を示すブロック図である。図9に示すように、第1の測距部200は、射出部251と、受信部253と、強度判定部255と、計測部257と、算出部259と、出力部261と、を含む。
射出部251は、例えば、送光部210及びECU230により実現でき、受信部253は、例えば、受光部220により実現でき、強度判定部255は、例えば、増幅器241、コンパレータ242、及びECU230により実現でき、計測部257は、例えば、時間計測回路243により実現でき、算出部259及び出力部261は、例えば、ECU230により実現できる。
また、図9に示すように、第2の測距部300は、撮像部351と、視差演算部353と、出力部355と、を含む。撮像部351は、例えば、撮像光学系121A、121B、CMOS311A、311B、及びタイミング信号発生器316により実現でき、視差演算部353及び出力部355は、例えば、CPU315により実現できる。
また、図9に示すように、制御部400は、変更判定部451と、変更部453と、推定部455と、出力部457と、を含む。変更判定部451、変更部453、推定部455、及び出力部457は、例えば、CPU411により実現できる。
また、図9に示すように、移動体10は、移動制御部551を含む。移動制御部551は、例えば、制御演算部520及び飛行制御部526により実現できる。
第1の測距部200は、対象物までの距離を測距し、測距条件を満たす条件下で測距が行われている場合、測距した距離を示す値を含む第1の距離情報を出力し、測距条件を満たさない条件下で測距が行われている場合、所定の値を示す値を含む第1の距離情報を出力する。なお第1の測距部200が行う測距は、電磁波に基づく測距であり、定期的又は繰り返し行われる。
本実施形態では、電磁波がレーザ光であり、電磁波の反射波がレーザ光の反射光であり、測距条件が電磁波の反射光の強度の閾値である場合を例に取り説明するが、これに限定されるものではない。
射出部251は、対象物に対してレーザ光を射出する。なお、対象物は、移動システム1の周囲に存在する物体であればどのようなものであってもよい。
受信部253は、対象物から、射出部251が射出したレーザ光の反射光を受信し、画像に変換する。
強度判定部255は、受信部253により受信された反射光の強度が閾値を超えるか否かを判定する。本実施形態では、反射光の強度が閾値を超える場合、反射光がノイズではなくレーザ光の反射光であると判定する。但し、対象物の反射率が低い場合には、レーザ光の反射光であっても強度が閾値以下となり、ノイズと判定されてしまう場合もある。なお本実施形態では、閾値は、前述の基準電圧V0の電圧値で設定されている。閾値を設定する基準電圧V0の電圧値は、予め定められた電圧値であってもよいし、照度計や雨滴センサにより測距環境を考慮した電圧値であってもよい。
計測部257は、受信部253により受信された反射光の強度が閾値を超えると強度判定部255により判定された場合、射出部251により射出されたレーザ光と受信部253により受信された反射光との時間差(位相差)を計測する。具体的には、計測部257は、時間差として、射出部251によりレーザ光が射出されてから受信部253により反射光が受信されるまでの時間を計測する。
算出部259は、計測部257により計測された時間差に基づいて対象物までの距離を算出する。具体的には、算出部259は、計測部257により計測された時間差に光の速度を乗じることで対象物までの距離を算出する。なお、対象物までの距離は、0より大きい値となる。
また算出部259は、受信部253により受信された反射光の強度が閾値以下であると強度判定部255により判定された場合、対象物までの距離を所定の値とする。本実施形態では、所定の値が0である場合を例に取り説明するが、これに限定されず、反射光の強度が閾値以下であり、ノイズの可能性があることを表す値であれば、どのような値であってもよい。
なお、強度判定部255、計測部257、及び算出部259の処理は、受信部253により座標軸とそれぞれの座標における反射光の強度をもとに変換された画像を構成する画素又は画素ブロック毎に行われる。そして算出部は、受信部253により変換された画像を構成する画素又は画素ブロック毎に、対象物までの距離を対応づけ、第1の距離情報としての距離画像を生成する。これにより、距離画像は、距離画像に写る対象物の3次元空間上での3次元位置(3次元座標)を表すことができる。
出力部261は、受信部253により受信された反射光の強度が閾値を超えると強度判定部255により判定された場合、算出部259により算出された距離を示す距離画像である第1の距離情報を出力する。また出力部261は、所定領域(該当位置)において、受信部253により受信された反射光の強度が閾値以下であると強度判定部255により判定された場合、エラー値を示す所定の値を含む第1の距離情報を出力する。
なお本実施形態では、第1の距離情報は、距離画像であるものとするが、これに限定されるものではない。例えば、距離画像を所定の式を用いて変換した距離情報であってもよい。第1の距離情報においては、距離画像を構成する画素又は画素ブロックのうち、反射光の強度が閾値を超える画素又は画素ブロックには、算出部259により算出された距離が対応付けられ、反射光の強度が閾値以下である画素又は画素ブロックには、所定の値が対応付けられる。
第2の測距部300は、対象物までの距離を測距し、当該距離を示す第2の距離情報を出力する。なお第2の測距部300が行う測距は、撮像に基づく測距であり、定期的又は繰り返し行われる。
撮像部351は、複数の撮像位置それぞれから対象物を撮像する。本実施形態では、CMOS311A及びCMOS311Bが同期して対象物を撮像する。
視差演算部353は、撮像部351の撮像により得られた複数の撮像画像を用いた視差演算を行い、前述の視差画像を生成する。具体的には、視差演算部353は、撮像部351の撮像により得られたステレオ画像の同じ部分をブロックマッチングすることで視差を算出し、視差画像を生成する。
例えば、視差演算部353は、ステレオ画像を構成する左画像又は右画像のどちらかを基準画像とし、左画像を基準画像にした場合、着目画素を中心とするブロックに左画像を分割し、同じ位置の右画像のブロックとの画素毎の輝度値の差の合計を算出する。この際、視差演算部353は、右画像でブロックを水平方向に1画素ずつずらしながら、画素毎の輝度値の差の合計の算出を繰り返し行う。そして視差演算部353は、左右の画像のブロック同士の輝度値の差の合計が一番少ない時のブロックの移動量を視差とする。例えば、左画像の(x、y)を中心とするブロックと、右画像の(x+Δ、y)を中心とするブロックの輝度値の差の合計が最小だった場合、視差はΔである。なお、レンズから物体Sまでの距離をZ、左右のレンズの中心間の距離(基線長)をD、焦点距離をf、視差をΔとした場合、距離Zは以下のように表される。
Z=D・f/Δ
なお本実施形態では、視差画像に画素又は画素ブロック単位で対応付けられる視差情報が対象物までの距離である場合を例に取り説明するが、これに限定されず、視差であってもよい。
出力部355は、視差演算部353が視差演算に成功した場合、視差演算により求められた視差画像を、対象物までの距離を示す第2の距離情報として出力する。また出力部355は、視差演算部353が視差演算に失敗した場合、エラー値を示す所定の値を含む第2の距離情報を出力する。本実施形態では、所定の値が0である場合を例に取り説明するが、エラー値を示す値であればこれに限定されるものではない。
なお本実施形態では、第2の距離情報は、視差画像であるものとするが、これに限定されるものではない。例えば、視差画像を所定の式を用いて変換した距離情報であってもよい。第2の距離情報においては、視差画像を構成する画素又は画素ブロックのうち、視差演算が成功した画素又は画素ブロックには、求められた視差情報が対応付けられ、視差演算が失敗した画素又は画素ブロックには、所定の値が対応付けられる。
変更判定部451は、第1の測距部200により出力された所定の領域の第1の距離情報が所定の値を示し、かつ第2の測距部300により出力された上記所定の領域に対応する領域の第2の距離情報が所定の条件を満たすか否かを判定する。本実施形態では、所定の条件が、第2の距離情報が視差演算により求められた対象物までの距離を示すこと、即ち、第2の距離情報が0より大きい値を示すことである場合を例に取り説明するが、これに限定されるものではない。
この場合、変更判定部451は、所定の領域において第1の距離情報が0を示し、かつ所定の領域に対応する領域において第2の距離情報が0より大きい値を示すか否かを判定する。詳細には、変更判定部451は、第1の距離情報(距離画像)及び第2の距離情報(視差画像)が示す同一位置において、第1の距離情報が0を示し、かつ第2の距離情報が0より大きい値を示すか否かを判定する。
なお本実施形態では、前述したように、レーザ測距装置(第1の測距部200)の基準軸とステレオカメラ(第2の測距部300)の基準軸とが同一の軸であり、かつレーザ測距装置(第1の測距部200)の受光面とステレオカメラ(第2の測距部300)の撮像面とが同一の軸上に位置する。このため、第1の距離情報(距離画像)が示す3次元空間の座標軸と、第2の距離情報(視差画像)が示す3次元空間の座標軸とが一致し、予め設定しているレーザ測距装置の測定領域と、ステレオカメラの測定領域を考慮することで、座標変換等を行わずに、両3次元空間における同一位置(3次元位置)を容易に導き出せる。さらに、座標軸の一致だけでなく、第1の距離情報から画像を生成する際の投影方法と、第2の距離情報から画像を生成する際の投影方法が同一であればより両三次元空間における同一位置の算出は容易となる。
変更部453は、所定の領域において第1の距離情報が所定の値を示しかつ所定の領域に対応する領域において第2の距離情報が所定の条件を満たすと変更判定部451により判定された場合、第1の測距部200の測距条件を緩めるように変更する。具体的には、変更部453は、第1の距離情報(距離画像)及び第2の距離情報(視差画像)が示す同一位置において、第1の距離情報が0を示しかつ第2の距離情報が0より大きい値を示すと変更判定部451により判定された場合、第1の測距部200の閾値を下げる。
例えば、変更部453は、第1の測距部200に閾値を下げるよう指示し、強度判定部255は、制御部400の指示を受け、閾値を下げる(基準電圧V0の電圧値を下げる)。なお本実施形態では、予め定められた値分閾値を下げる場合を例に取り説明するが、閾値の下げ方はこれに限定されるものではない。
これにより、第1の測距部200は、次の測距を行う場合、変更された測距条件で、対象物までの距離を再測距することになる。なお、第1の測距部200は、再測距を行う場合、前回測距できなかった位置(第1の距離情報が0を示した位置)のみ再測距を行うようにしてもよい。また、前回測距できなかった位置が一定の大きさ(画素数)であるときのみ測距条件の変更および再測距を行うようにしてもよい。
推定部455は、第1の測距部200により出力された第1の距離情報および第2の測距部300から出力された第2の距離情報を用いて自己位置推定用情報を生成する。自己位置推定用情報は、第1の距離情報と第2の距離情報から重み付けを行って算出された距離情報である。なお、重み付けは第1の測距部200と第2の測距部300の精度の違いや測距条件等から、設計者の求める性能に応じて任意に決定される。また、推定部455は、自己位置推定用情報を用いて自己位置推定を行い、自己位置推定結果を算出する。なお、自己位置の推定は、例えば、SLAM(Simultaneous Localization and Mapping)などの公知技術を用いて行えばよい。自己位置推定結果は、例えばマップにおける自己の位置情報であり、複数のフレームを有する自己位置推定用情報を用いた自己位置推定では、自己の移動速度や加速度等である。また、測定方向の障害物の位置情報も含んでも良い。
また推定部455は、所定の領域において第1の距離情報がエラー値である0を示し、所定の領域に対応する領域の第2の距離情報がエラー値である0を示しているときは、自己位置推定用情報において、所定の領域はエラー値を示す所定の値(例えば0)を設定する。推定部455は、自己位置推定用情報において所定の値を示す領域においては、自己位置推定の推定に用いない。これにより、自己位置の推定にエラー値が反映されることを抑制することができる。
出力部457は、推定部455により推定された自己位置推定結果を移動体10に出力する。
移動制御部551は、測距装置100から出力された自己位置推定結果に基づいて、移動体10(移動システム1)の移動を制御する。
図10は、本実施形態の第1の測距部200による処理の手順の流れの一例を示すフローチャートである。なお、図10に示す処理は、定期的又は繰り返し行われる。
まず、射出部251は、対象物に対してレーザ光を射出する(ステップS101)。
続いて、受信部253は、対象物から、射出部251が射出したレーザ光の反射光を受信し、画像に変換する(ステップS103)。
続いて、強度判定部255は、受信部253により受信された反射光の強度が閾値を超えるか否かを判定する(ステップS105)。
受信部253により受信された反射光の強度が閾値を超えると強度判定部255により判定された場合(ステップS105でYes)、計測部257は、射出部251により射出されたレーザ光と受信部253により受信された反射光との時間差を計測し、算出部259は、計測部257により計測された時間差に基づいて対象物までの距離を算出し、算出した距離を、受信部253により変換された画像である距離画像に設定する(ステップS107)。
一方、受信部253により受信された反射光の強度が閾値以下と強度判定部255により判定された場合(ステップS105でNo)、算出部259は、0を、受信部253により変換された画像である距離画像に設定する(ステップS109)。
なお、ステップS105〜S109までの処理は、距離画像を構成する画素又は画素ブロックそれぞれに対して行われる。
続いて、出力部261は、第1の距離情報として、画素又は画素ブロック毎に距離が設定された距離画像を制御部400に出力する(ステップS111)。
図11は、本実施形態の第2の測距部300による処理の手順の流れの一例を示すフローチャートである。なお、図11に示す処理は、定期的又は繰り返し行われる。
まず、撮像部351は、複数の撮像位置それぞれから対象物を撮像する(ステップS201)。
続いて、視差演算部353は、撮像部351の撮像により得られた複数の撮像画像を用いた視差演算が可能であれば(ステップS203でYes)、視差演算を行って視差及び距離を求め(ステップS205)、算出した距離を視差情報として、視差画像に設定する(ステップS209)。
一方、視差演算部353は、撮像部351の撮像により得られた複数の撮像画像を用いた視差演算が不可能であれば(ステップS203でNo)、0を視差画像に設定する(ステップS207)。
なお、ステップS203〜S209までの処理は、視差画像を構成する画素又は画素ブロックそれぞれに対して行われる。
続いて、出力部355は、第2の距離情報として、画素又は画素ブロック毎に距離が設定された視差画像を制御部400に出力する(ステップS211)。
図12は、本実施形態の制御部400による処理の手順の流れの一例を示すフローチャートである。なお、図12に示す処理は、定期的又は繰り返し行われる。
まず、変更判定部451は、第1の距離情報(距離画像)が示すいずれかの位置において、距離が0であるかを判定する(ステップS301)。
第1の距離情報が示すいずれかの位置において距離が0である場合(ステップS301でYes)、変更判定部451は、第1の距離情報において距離が0である位置と同一の位置における第2の距離情報(距離画像)が示す距離が0であるか否かを判定する(ステップS315)。
同一の位置(該当位置)における第2の距離情報が示す距離が0でない(0より大きい値の)場合(ステップS315でNo)、変更部453は、第1の測距部200に閾値を下げるよう指示し、第1の測距部200(強度判定部255)は、制御部400の指示を受け、閾値を下げる(ステップS319)。
第2の距離情報が示す距離が0である場合(ステップS315でYes)、推定部455は、第1の距離情報および第2の距離情報から生成する自己位置推定用の距離情報である自己位置推定用情報に対して、該当位置にエラー値を設定する(ステップS317)。
一方、第1の距離情報が示すいずれの位置においても距離が0でない(0より大きい値の)場合(ステップS301でNo)、推定部455は、第1の距離情報及び第2の距離情報から生成する自己位置推定用情報に対して、該当位置に対象物までの距離を重み付けにより確定し、確定した距離を設定する。(ステップS305)。
続いて、推定部455は、各画素(各位置)に対する距離情報またはエラー値が設定されている自己位置推定用情報を生成し、自己位置推定用情報から自己位置推定結果を算出する(ステップS309)。例えば、推定部455は、第1の測距部200の視野内の距離に第1の距離情報を用いて、第1の測距部200の視野外の距離に第2の距離情報を用いて自己位置推定情報を生成する。さらに推定部455は、第1の測距部200と第2の測距部300の共通する視野内においては、ステップS305またはステップS317で設定された値を用いる。これらにより生成された自己位置推定情報からSLAM等を用いて自己位置を推定し、自己位置推定結果を算出する。
続いて、出力部457は、自己位置推定結果を移動体10に出力する(ステップS311)。
続いて、移動制御部551は、測距装置100から出力された自己位置推定結果に基づいて、移動体10(移動システム1)の移動を制御する(ステップS313)。
例えば、移動制御部551は、自己位置推定情報から、進行方向に障害物が存在しないと判断すれば、移動体10を進行方向に移動させる制御を行う。また例えば、移動制御部551は、自己位置推定情報から、進行方向に障害物が存在すると判断すれば、障害物を迂回させるように移動体10を移動させる制御を行う。また例えば、移動制御部551は、自己位置推定情報がエラー値であれば、移動体10を測距が行われた空間に移動させないように制御したり、静止させる制御をしたりする。
なお、ステップS319で閾値を下げても、同一位置において、第1の距離情報が示す距離が0であり(ステップS301でYes)、第2の距離情報が示す距離が0でない(ステップS315でNo)ままであれば、推定部455は、第2の距離情報を用いて、自己位置を推定するようにしてもよい。
なお、図12のステップ309では、推定部455は、エラー値を示している領域については自己位置の推定に用いない、または、重み付けにより影響を小さくする。これにより、自己位置の推定にエラー値が反映されることを抑制することができる。また、所定の領域において第1の距離情報の値が0で、第2の距離情報の値が0でない位置については、ステップS319で閾値を下げて再測定しても第1の距離情報の値が0となるときは、第2の距離情報の値を用いて自己位置推定用情報を生成してもよい。
本実施形態では、前述のように、第1の距離情報(距離画像)が示す3次元空間の座標軸と、第2の距離情報(視差画像)が示す3次元空間の座標軸とが一致しているため、この場合も(自己位置推定に用いる距離情報を第1の距離情報から第2の距離情報に切り替えても)、座標変換等を行わずに、自己位置の推定を継続できる。なお、本実施例では座標軸を一致させているが、別途座標軸を一致させる処理を自己位置の推定処理の途中に加えても良い。
以上より、本実施形態によれば、測距可能な状況を拡大することができる。なお、本実施形態では視差演算が不可能であれば0を視差画像に設定しているが、不可能であるときに設定する値は設計者が任意に定めることができる。
具体的には、本実施形態によれば、第1の測距部200による測距では、反射光の強度が閾値未満のため距離が0であるが、第2の測距部300による測距では、測距可能であるため距離が0より大きい場合、閾値を下げて再測距が行われる。
つまり本実施形態によれば、第1の測距部200による測距では距離が0あり、かつ第2の測距部300による測距では距離が0より大きい位置を、反射率が低い対象物上の位置と推定し、反射光の強度用の閾値を下げて再測距を行う。
このように本実施形態によれば、第2の測距部300による測距結果を用いて、対象物上の位置の反射率が低いか否かを判定し、反射率が低ければ閾値を下げて再測距を行うため、第1の測距部200単体では測距できないような条件であっても、測距することができ、測距可能な状況を拡大することができる。
一般的に、ステレオカメラによる測距よりもレーザ測距装置による測距の方が高精度であるため、本実施形態によれば、第1の測距部200(レーザ測距装置)による測距結果を用いて自己位置推定を行う機会を拡大でき、移動体の移動精度を向上させることもできる。
(変形例1)
なお本実施形態では、第2の測距部300(ステレオカメラ)による測距結果を用いて、第1の測距部200(レーザ測距装置)による測距可能な状況を拡大する場合を例に取り説明したが、これに限定されず、第1の測距部200(レーザ測距装置)による測距結果を用いて、第2の測距部300(ステレオカメラ)による測距可能な状況を拡大するようにしてもよい。
(変形例2)
また上記実施形態では、移動体10が自律して移動する移動体であり、測距装置100は、移動体の周囲に存在する物体(対象物)との距離を測距することで、移動体10の自己位置を推定し、移動体10は、測距装置100の自己位置推定結果に基づいて自律移動を制御する例について説明したが、これに限定されるものでない。例えば、図13に示すように、移動体を自動車600とし、自動車600の移動方向に存在する物体(対象物)との距離を測距可能な位置に測距装置100を設けるようにしてもよい。この場合、測距装置100は、自動車600の移動方向に存在する物体(対象物)との距離を測距することで、自動車600の進路上に存在する障害物等を検出し、自動車は、当該自動車に設けられたディスプレイやスピーカなどを用いて、測距装置により検出された障害物等を運転者に報知することができる。なおこの場合、測距装置100の推定部455は、第1の距離情報及び第2の距離情報の少なくともいずれかを用いて自己位置推定を行う必要はなく、第1の距離情報及び第2の距離情報の少なくともいずれかを用いて、対象物までの距離を確定すればよい。
(変形例3)
また上記実施形態では、レーザ測距装置がスキャン方式で測距を行う場合を例に取り説明したが、非スキャン方式で測距を行うようにしてもよい。また、スキャン方式では、レーザ光を射出する光学系とレーザ光の反射光を受光する光学系とを共通化してもよい。例えば、図14に示す例の測距装置700では、アタッチメント710に、スキャン方式で測距を行うレーザ測距装置が内蔵され、レーザ光を射出する光学系とレーザ光の反射光を受光する光学系が光学系711として共通化されている。
また図14に示す例でも、レーザ測距装置による測距により計測される3次元空間の座標軸と、ステレオカメラによる測距により計測される3次元空間の座標軸と、を一致させるため、レーザ測距装置の基準軸とステレオカメラの基準軸とが同一の軸1111となり、かつレーザ測距装置の受光面とステレオカメラの撮像面とが同一の軸1112上に位置するように、測距装置700は設計されている。
なお、非スキャン方式で測距を行うレーザ測距装置では、フレームレートを短縮できるという利点があり、スキャン方式で測距を行うレーザ測距装置では、レーザ光を集光させて射出するので、長距離の測距が可能という利点がある。
(変形例4)
また上記実施形態では、第2の距離情報として距離を用いたが、第2の測距部300が撮像したカラー画像(対象物の色)を更に用いて、閾値を下げるか否か判定するようにしてもよい。この場合、第2の測距部300の出力部355は、撮像部351の撮像により得られた複数の撮像画像(カラー画像)に基づく所定のカラー画像を出力する。
ここで、所定のカラー画像は、複数のカラー画像のいずれかであってもよいし、複数のカラー画像を1枚のカラー画像に合成した合成カラー画像であってもよい。カラー画像の合成については、予め定められた設定を使用して処理してもよいし、視差画像のマッチング処理の結果から処理してもよい。また、複数のカラー画像を合成する場合、撮像領域が共通している画素に関しては、当該画素の平均値を用いればよい。なお、合成カラー画像の生成は、第2の測距部300のCPU315が行えばよい。
そして変更部453は、第1の距離情報が所定の値を示す対象物上の領域に対し、第2の距離情報が視差演算により求められた距離を示し、かつ当該領域に対応する所定のカラー画像上の対応領域の色が所定の色を示すと変更判定部451により判定された場合に、第1の測距部200の閾値を下げればよい。つまり、変更判定部451は、第1の距離情報(距離画像)及び第2の距離情報(視差画像)が示す同一位置において、第1の距離情報が0を示し、第2の距離情報が0より大きい値を示し、更に、所定のカラー画像が所定の色を示すか否かを判定し、変更部453は、第1の距離情報が0を示し、第2の距離情報が0より大きい値を示し、かつ所定のカラー画像が所定の色を示すと変更判定部451により判定された場合、第1の測距部200の閾値を下げるようにすればよい。
ここで、所定の色としては、黒色及び肌色の少なくともいずれかが挙げられる。黒色は電磁波(レーザ光)を吸収しやすく、反射率が低いため、当該電磁波が対象物上の黒色の領域で反射した場合、反射波(反射光)の強度が低くなり、ノイズと誤判定されてしまう場合もあるためである。また、対象物上の肌色の領域は人間の皮膚である可能性が高く、人間も反射率が低いため、電磁波が対象物上の肌色の領域(人間)で反射した場合、反射波(反射光)の強度が低くなり、ノイズと誤判定されてしまう場合もあるためである。従って、上記のように処理すれば、対象物上の黒色や肌色の領域についても、第1の測距部200によるレーザ測距装置での測距が可能となる。
図15は、変形例4の制御部400による処理の手順の流れの一例を示すフローチャートである。なお、図15に示す処理は、ステップS316を除き、図12に示すフローチャートと同様である。ステップS316では、変更判定部451は、所定のカラー画像を用いて、第1の距離情報において距離が0であり、かつ第2の距離情報において距離が0より大きい位置の色が、所定の色であるか否かを判定する。ステップS316でYesの場合、変更部453は、第1の測距部200に閾値を下げるよう指示し、第1の測距部200(強度判定部255)は、制御部400の指示を受け、閾値を下げる(ステップS319)。ステップS316でNoの場合、推定部455は、自己位置推定用情報に対して該当位置にエラー値を設定する(ステップS317)。以上のステップにより、第1の測距部200が測距できておらず、第2の測距部300が測距できている領域に対して、第2の測距部300のカラー画像を用いて、第1の測距部200の測距条件を、信号をより多く拾えるように変更することによって、測距可能な状況を拡大することができる。
なお、図12に示す例同様、ステップS309において、推定部455は、エラー値を示している領域については自己位置の推定に用いない、または、重み付けにより影響を小さくする。これにより、自己位置の推定にエラー値が反映されることを抑制することができる。また、所定の領域において第1の距離情報の値が0で、第2の距離情報の値が0でない位置については、ステップS319で閾値を下げて再測定しても第1の距離情報の値が0となるときは、第2の距離情報の値を用いて自己位置推定用情報を生成してもよい。
(変形例5)
変形例4において、変更部453は、所定のカラー画像上の対応領域の輝度値や、対象物の撮像に要した露光時間に応じて、第1の測距部200の閾値を下げるようにしてもよい。具体的には、第1の測距部200によるレーザ測距装置での測距は、明るい環境で行われるほど、余計な光を受光してしまいノイズが生じやすくなり、暗い環境で行われるほど、ノイズが生じにくい。従って、変更部453は、所定のカラー画像上の対応領域の輝度値が小さいほど閾値を下げる量を大きくしたり、第2の測距部300による撮像に要した露光時間が長いほど閾値を下げる量を大きくしたりしてもよい。このようにすれば、ノイズが少ないほど、測距可能な状況を拡大することができる。
(変形例6)
上記実施形態及び各変形例において、変更判定部451が、第2の距離情報が示す値(距離)が0より大きいだけでなく、所定の距離以上であると判定した場合に、変更部453は、第1の測距部200の閾値を下げるようにしてもよい。これにより、近方の測距では、第2の測距部300の測距結果(第2の距離情報)を用い、遠方の測距では、高精度の測定が可能な第1の測距部200の再測距結果(第1の距離情報)を用いるようにすることができる。
(変形例7)
上記実施形態及び各変形例において、変更部453は、第1の測距部200の閾値を下げるだけでなく、第1の測距部200の測距回数を増加させ、第1の測距部200は、増加された回数分、対象物の測距を行い、当該増加された回数分の測距結果に基づいて、第1の距離情報を決定するようにしてもよい。第1の測距部200の閾値を下げた場合、ノイズを反射波と誤認識してしまう可能性があるが、複数回(増加された回数分)測距を行えば、ノイズの排除が可能である。例えば、複数回の測距により得られた、複数の反射光(ノイズの場合もある)のうち、強度が閾値を超えていても、外れ値となる強度(他の強度との相違が大きい強度)の反射光を除去して、距離を算出するようにすれば、ノイズを排除でき、測距結果の精度低下を防止できる。また例えば、複数回の測距により得られた、複数の反射光(ノイズの場合もある)のうち、強度が閾値を超えていても、時間差(出射した時刻と受光した時刻との時間差)が外れ値となる(他の時間差との相違が大きい)反射光を除去して、距離を算出するようにすれば、ノイズを排除でき、測距結果の精度低下を防止できる。