(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】障害物回避装置
(51)【国際特許分類】
G05D 1/43 20240101AFI20241126BHJP
【FI】
G05D1/43
(21)【出願番号】P 2021147010
(22)【出願日】2021-09-09
【審査請求日】2023-12-18
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】中田 翔
【審査官】牧 初
(56)【参考文献】
【文献】特開2020-140477(JP,A)
【文献】特開2019-087980(JP,A)
【文献】特開2015-123534(JP,A)
【文献】特開2011-253377(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00- 1/87
G01C 21/00-21/36
G01C 23/00-25/00
G08G 1/00-99/00
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
自律走行体が備えるセンサによって観測された障害物を前記自律走行体に回避させるための障害物回避装置であって、
前記センサの観測結果に基づき、前記自律走行体に対する前記障害物の位置を示す障害物点群を導出する障害物点群導出部と、
前記障害物点群が存在する場合に、前記自律走行体に前記障害物点群によって示される前記障害物を回避させる回避部と、を備え、
前記障害物点群は、
前記センサの観測領域内の前記障害物の位置を示す観測点群と、
過去に前記センサによって観測された前記障害物であって、前記自律走行体の移動によって前記センサの観測領域外に位置することとなった前記障害物の位置を示す仮想観測点群と、を含み、
前記障害物点群導出部は、
前記センサの観測結果に基づき前記観測点群を取得する観測点群取得部と、
前記観測点群取得部によって取得された前記観測点群よりも過去に取得された前記観測点群を過去観測点群とすると、前記過去観測点群の取得から前記観測点群取得部による前記観測点群の取得までの前記自律走行体の移動量を取得する移動量取得部と、
前記過去観測点群を前記移動量だけ移動させることで、前記仮想観測点群を導出する仮想観測点群導出部と、
前記観測点群取得部によって取得された前記観測点群に基づき、前記観測領域のうち、前記障害物によって遮られる遮蔽領域内に、補助点群を生成する補助点群生成部と、
過去に生成された前記補助点群を前記移動量だけ移動させることで、前記センサの観測領域外に位置する仮想補助点群を導出する仮想補助点群導出部と、を備え、
前記障害物点群は、前記補助点群と、前記仮想補助点群と、を含み、
前記観測領域内に前記障害物が存在する場合、前記観測領域は、前記遮蔽領域と、前記遮蔽領域以外の観測可能領域とにより構成され、
前記障害物点群導出部は、
前記補助点群及び前記仮想補助点群のうち、前記観測可能領域に含まれるものを前記障害物点群から除去する補助点群除去部を備える、障害物回避装置。
【請求項2】
前記回避部は、前記障害物点群のうち、前記自律走行体の少なくとも一部を含む探索領域内に含まれる前記障害物点群によって示される前記障害物を前記自律走行体に回避させる、請求項
1に記載の障害物回避装置。
【請求項3】
前記仮想観測点群導出部は、前記過去観測点群のうちの一部を前記移動量だけ移動させることで前記仮想観測点群を導出し、
前記導出された仮想観測点群を構成する仮想観測点同士の間隔は、前記自律走行体が走行可能な走行可能幅未満である、請求項1
又は2に記載の障害物回避装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害物回避装置に関する。
【背景技術】
【0002】
特許文献1には、周囲の障害物を観測可能なセンサを備える自律走行体が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、センサの観測領域が限られている場合には、センサの観測領域内に位置していた障害物であっても、自律走行体の走行によってセンサの観測領域外に位置する場合がある。このような場合にも自律走行体に周囲の障害物を回避させる際には、センサの観測領域外に位置する障害物を考慮した上で自律走行体に障害物を回避させることが望まれる。
【課題を解決するための手段】
【0005】
上記課題を解決する障害物回避装置は、自律走行体が備えるセンサによって観測された障害物を前記自律走行体に回避させるための障害物回避装置であって、前記センサの観測結果に基づき、前記自律走行体に対する前記障害物の位置を示す障害物点群を導出する障害物点群導出部と、前記障害物点群が存在する場合に、前記自律走行体に前記障害物点群によって示される前記障害物を回避させる回避部と、を備え、前記障害物点群は、前記センサの観測領域内の前記障害物の位置を示す観測点群と、過去に前記センサによって観測された前記障害物であって、前記自律走行体の移動によって前記センサの観測領域外に位置することとなった前記障害物の位置を示す仮想観測点群と、を含み、前記障害物点群導出部は、前記センサの観測結果に基づき前記観測点群を取得する観測点群取得部と、前記観測点群取得部によって取得された前記観測点群よりも過去に取得された前記観測点群を過去観測点群とすると、前記過去観測点群の取得から前記観測点群取得部による前記観測点群の取得までの前記自律走行体の移動量を取得する移動量取得部と、前記過去観測点群を前記移動量だけ移動させることで、前記仮想観測点群を導出する仮想観測点群導出部と、を備える。
【0006】
これによれば、仮想観測点群は、過去に観測された観測点群を自律走行体の移動量だけ移動させることで得られる。仮想観測点群は、過去に観測された観測点群によって示される障害物が、観測点群取得部による観測点群の取得が行われるタイミングでどこに位置するかを示す。回避部は、センサの観測領域内の障害物の位置を示す観測点群のみならず、仮想観測点群を考慮した回避を自律走行体に行わせる。これにより、障害物回避装置を用いることで、自律走行体は、過去に観測された障害物がセンサの観測領域外に位置している場合でも、当該障害物を考慮した上で、障害物の回避を行うことができる。したがって、自律走行体の障害物回避性能を向上することができる。
【0007】
上記障害物回避装置において、前記障害物点群導出部は、前記観測点群取得部によって取得された前記観測点群に基づき、前記観測領域のうち、前記障害物によって遮られる遮蔽領域内に、補助点群を生成する補助点群生成部と、過去に生成された前記補助点群を前記移動量だけ移動させることで、前記センサの観測領域外に位置する仮想補助点群を導出する仮想補助点群導出部と、を備え、前記障害物点群は、前記補助点群と、前記仮想補助点群と、を含む、ものであってもよい。
【0008】
障害物によってセンサの観測が遮られると、自律走行体に対して当該障害物より奥の領域をセンサで観測することが困難となる。
そこで、本構成によれば、このような遮蔽領域に補助点群が生成される。過去に生成された補助点群が自律走行体の移動によってセンサの観測領域外に移動することとなった場合、当該補助点群を自律走行体の移動量だけ移動させることで、仮想補助点群が導出される。このようにして導出された仮想補助点群は、センサの観測領域であったにも関わらず障害物によってセンサが観測できなかった領域を示す。障害物点群が仮想補助点群を含むため、自律走行体は回避の際に、仮想補助点群によって表されている領域を避けて回避を行うことができる。障害物によってセンサが観測できなかった領域を避けつつ障害物を回避することができる。したがって、自律走行体が障害物によって遮蔽された領域の物体と接触する可能性を抑制することができる。
【0009】
上記障害物回避装置において、前記観測領域内に前記障害物が存在する場合、前記観測領域は、前記遮蔽領域と、前記遮蔽領域以外の観測可能領域とにより構成され、前記障害物点群導出部は、前記補助点群及び前記仮想補助点群のうち、前記観測可能領域に含まれるものを前記障害物点群から除去する補助点群除去部を備える、ものであってもよい。
【0010】
これによれば、観測可能領域は、障害物によって遮られずにセンサによって観測が行われた観測領域を示す。そのため、補助点群及び仮想補助点群のうち、観測可能領域に含まれるものを障害物点群から除去することで、一旦は障害物があると判断された領域に障害物がないことが確認された場合には、自律走行体は、当該領域を走行して回避を行うことができる。したがって、障害物を回避する際の経路の短縮を図ることができる。
【0011】
上記障害物回避装置において、前記回避部は、前記障害物点群のうち、前記自律走行体の少なくとも一部を含む探索領域内に含まれる前記障害物点群によって示される前記障害物を前記自律走行体に回避させる、ものであってもよい。
【0012】
これによれば、自律走行体が回避する必要がないほど遠い障害物を自律走行体が回避しようとする不都合が生じることを抑制することができる。
上記障害物回避装置において、前記仮想観測点群導出部は、前記過去観測点群のうちの一部を前記移動量だけ移動させることで前記仮想観測点群を導出し、前記導出された仮想観測点群を構成する仮想観測点同士の間隔は、前記自律走行体が走行可能な走行可能幅未満である、ものであってもよい。
【0013】
これによれば、導出される仮想観測点群に含まれる仮想観測点を削減することで、障害物回避装置の処理負荷の軽減を図ることができる。
【発明の効果】
【0014】
本発明によれば、センサの観測領域外に位置する障害物を考慮した上で自律走行体に障害物を回避させることができる。
【図面の簡単な説明】
【0015】
【
図3】障害物回避処理を示すフローチャートである。
【
図4】障害物点群導出処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
<構成>
以下、障害物回避装置が適用される自律走行体の一実施形態について説明する。
図1に示すように、自律走行体10は、車両20と、車両20に搭載されたセンサ31と、車両20に搭載された制御装置32と、を備える。車両20は、車体21と、複数の車輪22と、を備える。自律走行体10は、荷を搬送する搬送台車である。本実施形態の自律走行体10は、全方位に移動可能であり、走行体中心位置Pを中心にその場旋回可能に構成されている。
【0017】
本実施形態の車輪22は、全方向移動車輪である。全方向移動車輪とは、車軸と一体となって回転することに加えて、車軸の軸線方向への移動を許容する車輪である。車輪22は、4つ設けられている。車輪22の回転数、及び、回転方向が制御されることで、車両20は、車体21の向きを維持した状態での全方向への移動、車体21の向きを変更しながらの移動、移動しない状態での車体21の向きの変更が可能である。なお、上記した「全方向」とは、車両20が走行する路面上や床面上での移動方向を示す。以下、説明の便宜上、車両20が走行する面を水平面という。
【0018】
図2に示すように、自律走行体10は、車輪22を駆動させる駆動機構41を備える。駆動機構41は、車輪22を回転させるためのモータ42と、モータ42を駆動させるモータドライバ43と、を備える。なお、図示は省略するが、モータ42、及び、モータドライバ43は、車輪22の数と同数設けられる。モータドライバ43は、制御装置32からの指令に応じてモータ42の回転数を制御する。制御装置32は、モータドライバ43を介してモータ42の回転数を制御することで、車両20の進行方向を制御可能である。
【0019】
次に、センサ31、及び、制御装置32について詳細に説明する。
図1に示すように、センサ31は、観測領域A1内の障害物Ob1を観測可能に構成されている。本実施形態のセンサ31は、CMOS(Complementary Metal Oxide Transistor)等の撮像素子を含むRGBカメラである。
【0020】
観測領域A1は、センサ31から観測方向D1に延びる領域である。観測方向D1は、水平面に平行な方向である。観測領域A1は、センサ31から観測方向D1に向かうにつれて、水平面に平行な方向であって観測方向D1と垂直な方向に広がる。観測方向D1は、センサ31を基準とする観測領域A1の中央を示す。観測領域A1は、水平面内において観測方向D1から所定の観測角度の範囲に含まれる。観測角度は、例えば観測方向D1に対して±60度の範囲である。本実施形態の観測角度は、センサ31の画角である。センサ31は、走行体中心位置Pから離れた位置であるセンサ位置Psに搭載されている。以下、説明の便宜上、センサ位置Psから延びるとともに観測方向D1とのなす角が上記観測角度となる仮想的な境界線を、観測境界線B1,B2という。本実施形態では、水平面内における走行体中心位置Pからセンサ位置Psに向かう方向は、観測方向D1と一致している。
【0021】
図5に示すように、観測領域A1内に障害物Ob1が存在する場合、観測領域A1は、遮蔽領域A11と、観測可能領域A12とにより構成される。
遮蔽領域A11は、観測領域A1のうち、センサ31による観測が障害物Ob1によって遮られる領域である。言い換えれば、遮蔽領域A11は、例えばセンサ31を基準とする障害物Ob1の奥行きなど、センサ31から見た障害物Ob1の死角である。例えば、観測領域A1内に障害物Ob1が存在する場合、センサ31は、当該障害物Ob1のうちのセンサ31と向き合う部分を観測する。しかし、センサ31は、当該障害物Ob1のうち、センサ31によって観測される部分で遮蔽される領域を観測することができない場合がある。当該障害物Ob1の部分で遮蔽される領域が、遮蔽領域A11に相当する。この場合、センサ31は、遮蔽領域A11内に位置する可能性がある障害物を観測することができない。なお、遮蔽領域A11内に位置する可能性がある障害物とは、例えば障害物Ob1の一部、障害物Ob1とは異なる障害物である。
【0022】
観測可能領域A12は、観測領域A1のうちの遮蔽領域A11以外の領域である。観測可能領域A12は、障害物Ob1によってセンサ31の視界が遮られない領域である。観測可能領域A12は、センサ31によって障害物Ob1を直接観測することが可能な領域である。
【0023】
図2に示すように、制御装置32は、CPU33と、RAM及びROM等からなる記憶部34と、補助記憶装置35と、を備える。記憶部34には、車両20を制御するための種々のプログラムが記憶されている。制御装置32は、各種処理のうち少なくとも一部の処理を実行する専用のハードウェア、例えば、特定用途向け集積回路:ASICを備えていてもよい。制御装置32は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASIC等の1つ以上の専用のハードウェア回路、あるいは、それらの組み合わせを含む回路として構成し得る。プロセッサは、CPU、並びに、RAM及びROM等のメモリを含む。記憶部34は、処理をCPUに実行させるように構成されたプログラムコードまたは指令を格納している。記憶部34、即ち、コンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆるものを含む。補助記憶装置35は、書き換え可能な不揮発性メモリである。補助記憶装置35としては、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)及びフラッシュメモリを挙げることができる。補助記憶装置35には、環境地図を示す情報が記憶されている。環境地図とは、自律走行体10の用いられる環境の形状、広さなど、自律走行体10の周辺環境の物理的構造に関する情報である。
【0024】
図1に示すように、車両20を走行させる際には、制御装置32は、走行経路Rを生成する。走行経路Rは、車両20の出発点である現在位置から最終到達点までの経路である。なお、車両20が直進している場合、観測方向D1は走行経路Rに平行となる。
図1では、走行経路Rと観測方向D1とが重なり合っている。走行経路Rの生成方法としては、走行可能経路をグリッドマップ化して経路生成を行う方法や、ポテンシャル場を用いたポテンシャル法などを用いることができる。
【0025】
制御装置32は、車両20から所定距離離れた走行経路R上の位置を目標点Pgとし、目標点Pgに向けて走行するように駆動機構41を制御する。制御装置32は、センサ31の観測方向D1が車両20の進行方向を向くように車両20を走行させる。以下、説明の便宜上、観測方向D1が車両20の進行方向と一致するように車両20が走行することを通常走行という。通常走行での車両20の進行方向は、走行経路Rが延びる方向と一致している。
【0026】
制御装置32は、障害物回避処理を行う。制御装置32は、障害物回避処理を行うことにより、センサ31によって観測された障害物Ob1を自律走行体10に回避させる。このとき、制御装置32は、車両20と障害物Ob1とが接触しないように車両20と障害物Ob1との距離を所定値以上に保つ。
【0027】
以下、障害物回避処理の一例について
図3~
図8を用いて説明する。障害物回避処理は、例えば車両20が走行している間に行われる。
図3に示すように、制御装置32は、ステップS1において、障害物点群導出処理を行う。これにより、
図5に示すように、制御装置32は、センサ31の観測結果に基づき、障害物点群PCobを導出する。障害物点群導出処理は、所定の更新周期で繰り返し行われる。これにより、障害物点群PCobは、更新周期で更新される。ステップS1の処理を実行する制御装置32が本実施形態の障害物点群導出部に相当する。
【0028】
障害物点群PCobは、自律走行体10に対する障害物Ob1の位置を示す。障害物点群PCobは、1又は複数の障害物点Pobから構成される。障害物Ob1の位置を示す点である。例えば、障害物点群PCobは、水平面内における自律走行体10に対する障害物Ob1の相対座標である。本実施形態では、障害物点群PCobは、走行体座標で表される点群である。走行体座標は、走行体中心位置Pを原点とする2次元座標系で表される。走行体座標では、観測方向D1に平行な方向をY方向、観測方向D1に垂直な方向をX方向とする。XY平面は、水平面に平行である。
【0029】
図5~
図8に示すように、本実施形態の障害物点群PCobは、観測点群PC1と、補助点群PC2と、仮想観測点群PCi1と、仮想補助点群PCi2と、を含む。また、本実施形態の障害物点Pobは、観測点P1と、補助点P2と、仮想観測点Pi1と、仮想補助点Pi2と、を含む。
【0030】
観測点群PC1は、センサ31の観測領域A1内の障害物Ob1の位置を示す。観測点群PC1は、1又は複数の観測点P1により構成されている。
補助点群PC2は、遮蔽領域A11内に位置する可能性がある障害物の位置を示す。遮蔽領域A11内に位置する可能性がある障害物とは、例えば障害物Ob1の一部や障害物Ob1とは異なる障害物などである。補助点群PC2は、1又は複数の補助点P2により構成されている。
【0031】
仮想観測点群PCi1は、過去にセンサ31によって観測された障害物Ob1の位置を示す。仮想観測点群PCi1は、1又は複数の仮想観測点Pi1により構成されている。
仮想補助点群PCi2は、過去にセンサ31の観測結果に基づき導出された遮蔽領域A11内に位置する可能性がある障害物Ob1の位置を示す。仮想補助点群PCi2は、1又は複数の仮想補助点Pi2により構成されている。
【0032】
ここで、ステップS1の障害物点群導出処理の詳細について説明する。
図4に示すように、制御装置32は、ステップS11において、センサ31の観測結果に基づき観測点群PC1、及び観測時刻t1を取得する。ステップS11の処理を実行する制御装置32が本実施形態の観測点群取得部に相当する。
【0033】
観測時刻t1は、センサ31の観測結果が得られた時刻である。観測時刻t1は、観測点群PC1が制御装置32に取得された時刻であるともいえる。制御装置32は、ステップS11で取得された観測点群PC1及び観測時刻t1を、補助記憶装置35に記憶する。なお、観測時刻t1の取得及び記憶は任意である。
【0034】
走行体座標で表される観測点群PC1の導出方法の一例について説明する。
制御装置32は、センサ31が撮像した画像データを取得する。画像データには、観測領域A1内に配置されている対象が含まれ得る。取得された画像データの各ピクセルには、画像データ上の座標及び深度情報が対応付けられている。画像座標は、例えば当該画像の任意の点を原点とする二次元座標であり、センサ31に対する各ピクセルに表されている対象の方向を示す。深度情報は、各ピクセルに表されている対象とセンサ31との間の距離を示す。深度情報は、例えば画像データに対して深度推定を行うことにより得られる。深度推定の具体的態様は任意であるが、例えばSfM(Structure from Motion)や、畳み込みニューラルネットワーク(CNN:Convolution Neural Network)による機械学習を用いたものが挙げられる。深度情報は、距離センサなどから別途取得したものを用いてもよい。
【0035】
制御装置32は、取得した画像座標及び深度情報から、各ピクセルに対応するセンサ座標を導出する。センサ座標は、例えばセンサ位置Psを原点とする3次元座標系である。センサ座標では、観測方向D1に平行な方向をY方向とし、観測方向D1に垂直な方向をX方向とし、X方向及びY方向にともに垂直な方向をZ方向とする。ここでは、X方向及びY方向は、それぞれ水平面に平行な方向であるとする。なお、センサ座標は、センサ位置Psを原点とする極座標として表されていてもよい。これにより、制御装置32は、各ピクセルが示す対象のセンサ座標上の点群を導出する。
【0036】
制御装置32は、導出されたセンサ座標上の点群のX座標及びY座標に基づき、当該点群の走行体座標への変換を行う。制御装置32は、当該変換によって得られる点群を、観測点群PC1として導出する。なお、当該変換により、センサ座標上の点群に含まれるZ座標は削除される。言い換えれば、当該変換は、3次元のセンサ座標から2次元の走行体座標への射影である。制御装置32は、導出されたセンサ座標上の点群のうち、Z座標が所定の許容範囲内のもののみを走行体座標に変換してもよい。許容範囲とは、例えば自律走行体10が走行可能な段の高さや自律走行体10の車高に基づいて適宜設定すればよい。これにより、例えば自律走行体10が走行する床や、自律走行体10が乗り越えられる段差が観測点群PC1として導出されることが抑制される。
【0037】
以下で説明される各点群は、説明の便宜上、特に明示しない限り、走行体座標系で表されているものとする。
ステップS11が実行された後、ステップS12に進み、制御装置32は、遮蔽領域A11内に、補助点群PC2を生成する。遮蔽領域A11内には、遮蔽領域A11と観測可能領域A12との境界が含まれる。本実施形態では、補助点群PC2の少なくとも一部が、遮蔽領域A11と観測可能領域A12との境界に生成される。補助点群PC2は、複数の補助点P2によって構成されている。補助点P2同士の間隔は、自律走行体10の走行可能幅未満である。自律走行体10の走行可能幅とは、自律走行体10が走行することができる幅である。走行可能幅は、自律走行体10の水平方向での最大寸法より所定の猶予幅だけ長い。猶予幅は、車両20と障害物Ob1との間で許容可能な距離に基づき、ユーザが任意に設定することができる。なお、補助点群PC2の導出には、観測点群PC1が用いられることから、補助点群PC2は観測時刻t1での遮蔽領域A11内の障害物Ob1の位置を示す点群でもある。ステップS12の処理を実行する制御装置32が本実施形態の補助点群生成部に相当する。
【0038】
遮蔽領域A11内に補助点群PC2を生成する方法は任意であるが、例えば、制御装置32は、センサ位置Psと観測点P1とを結ぶ直線上において、センサ位置Psに対して観測点P1より離れた位置に補助点P2を生成すればよい。特に、本実施形態では、補助点群PC2を生成する際に、制御装置32は、観測方向D1を基準として、センサ位置Psから観測点P1に向かう方向の角度が最も大きい観測点P1を選択する。センサ位置Psと当該選択された観測点P1とを結ぶ直線上において、センサ位置Psに対して観測点P1より離れた位置に補助点P2を生成する。これにより、制御装置32は、遮蔽領域A11と観測可能領域A12との境界に、補助点群PC2を生成することができる。遮蔽領域A11と観測可能領域A12との境界に生成された補助点P2同士の距離は、自律走行体10の走行可能幅未満の任意の値である。なお、制御装置32は、観測点群PC1に基づき遮蔽領域A11を導出し、導出した遮蔽領域A11内の任意の位置に補助点P2を配置することで、補助点群PC2を生成してもよい。
【0039】
次にステップS13に進み、制御装置32は、過去観測点群、過去補助点群、及び過去観測時刻t2を取得する。過去観測点群は、ステップS11で取得された観測点群PC1よりも過去に取得された観測点群PC1である。過去補助点群は、ステップS12で生成された補助点群PC2よりも過去に生成された補助点群PC2である。過去観測時刻t2は、過去のステップS11において観測点群PC1の取得が行われた時刻である。本実施形態では、過去観測時刻t2は、過去のステップS12において補助点群PC2の生成が行われた時刻でもある。本実施形態では、前回の更新周期で行われた障害物点群導出処理で補助記憶装置35に記憶された観測点群PC1、補助点群PC2、及び観測時刻t1を、それぞれ過去観測点群、過去補助点群、及び過去観測時刻t2として取得する。なお、過去観測時刻t2の取得は任意である。
【0040】
制御装置32は、ステップS13での過去観測点群の取得からステップS11での観測点群PC1の取得までの自律走行体10の移動量δを取得する。移動量δは、自律走行体10の進行方向及び進行距離を含む。本実施形態では、移動量δは、過去観測時刻t2から観測時刻t1までの、絶対座標系における走行体中心位置Pの変化である。絶対座標系は、車輪22が接している地面が静止してみえる座標系である。
【0041】
移動量δの取得方法は任意であるが、例えば制御装置32は、オドメトリを用いて、車輪22の回転量やモータ42の回転量から、自律走行体10の走行距離及び走行方向を推定する。制御装置32は、推定された自律走行体10の走行距離及び走行方向から、移動量δを取得する。なお、制御装置32は、SLAM(Simultaneous Localization and Mapping)を用いて移動量δを導出してもよい。ステップS14の処理を実行する制御装置32が本実施形態の移動量取得部に相当する。
【0042】
次にステップS15に進み、制御装置32は、過去観測点群及び過去補助点群を移動量δだけ移動させることで、仮想観測点群PCi1及び仮想補助点群PCi2を導出する。特に、制御装置32は、過去観測点群のうち他の過去観測点群との距離が省略距離以上かつ走行可能幅未満の過去観測点群を移動させる。省略距離は、制御装置32が把握する障害物Ob1の解像度を示す。省略距離は、例えば障害物Ob1の観測精度に基づいて任意に設定可能である。ステップS15の処理を実行する制御装置32が本実施形態の仮想観測点群導出部及び仮想補助点群導出部に相当する。
【0043】
本実施形態では、制御装置32は、前回の更新周期における過去観測点群、すなわちステップS13で取得した過去観測点群のうち他の過去観測点群との距離が省略可能距離以上かつ走行可能幅未満のものを選択する。制御装置32は、当該選択された過去観測点群を、ステップS14で取得した移動量δだけ平行移動させることで、仮想観測点群PCi1を導出する。
【0044】
上述したように、過去観測時刻t2から観測時刻t1までに、走行体中心位置Pは移動量δだけ移動している。そのため、過去観測時刻t2で得られた過去観測点群で示される障害物Ob1は、走行体中心位置Pの移動した方向、すなわち自律走行体10の走行方向と反対方向に、走行体中心位置Pの移動距離と同じ距離だけ移動している。
【0045】
そのため、仮想観測点群PCi1は、過去の観測点群PC1から移動量δだけ移動した位置にある。詳細には、仮想観測点群PCi1は、過去の観測点群PC1から、走行体中心位置Pの移動方向と反対方向に、走行体中心位置Pの移動距離と同じ距離だけ移動した位置にある。同様に、仮想補助点群PCi2は、過去の補助点群PC2から移動量δだけ移動した位置にある。そのため、過去観測点群を移動量δだけ平行移動した点群は、観測時刻t1における障害物Ob1の位置を表す仮想観測点群PCi1となる。
【0046】
ここで、自律走行体10の移動によって、過去観測時刻t2では観測領域A1内に位置していた障害物Ob1が観測時刻t1では観測領域A1外に位置していることがある。この場合、仮想観測点群PCi1及び仮想補助点群PCi2は、観測領域A1外に位置する。したがって、仮想観測点群PCi1及び仮想補助点群PCi2は、観測領域A1外に位置する障害物の位置を示す。
【0047】
次にステップS16に進み、制御装置32は、観測領域A1内の仮想観測点群PCi1と、観測領域A1内の仮想補助点群PCi2と、を除去する。言い換えれば、制御装置32は、観測領域A1外の仮想観測点群PCi1と、観測領域A1外の仮想補助点群PCi2と、を障害物点群PCobとして残す。仮想観測点群PCi1及び仮想補助点群PCi2が観測領域A1内であるか否かは、仮想観測点Pi1及び仮想補助点Pi2のセンサ位置Psに対する水平面内の方向と観測方向D1とのなす角の角度が、観測角度の範囲内か否かによって判定可能である。当該角度が観測角度の範囲内の場合、制御装置32は仮想観測点群PCi1及び仮想補助点群PCi2が観測領域A1内であると判定する。一方、当該角度が観測角度の範囲外の場合、制御装置32は仮想観測点群PCi1及び仮想補助点群PCi2が観測領域A1外であると判定する。ステップS16で除去されずに残った仮想観測点群PCi1及び仮想補助点群PCi2は、観測領域A1外に位置する。そのため、当該仮想観測点群PCi1及び仮想補助点群PCi2は、自律走行体10の移動によってセンサ31の観測領域A1外に位置することとなった障害物Ob1の位置を示す。ステップS16の処理を実行する制御装置32が本実施形態の補助点群除去部に相当する。
【0048】
次にステップS17に進み、制御装置32は、観測可能領域A12内の補助点群PC2及び仮想補助点群PCi2を除去する。なお、本実施形態では、観測可能領域A12内の仮想補助点群PCi2はステップS16で除去されている。
【0049】
次にステップS18に進み、制御装置32は、探索領域A2外に位置する観測点群PC1、仮想観測点群PCi1、補助点群PC2、及び仮想補助点群PCi2を除去する。
図5~
図8に示すように、探索領域A2は、自律走行体10の少なくとも一部を含む。探索領域A2は、走行体中心位置P及びセンサ位置Psを含む。本実施形態では、探索領域A2は、自律走行体10の全部を含む。探索領域A2は、矩形状である。探索領域A2の大きさは、予めユーザに設定されたものでもよいし、自律走行体10の走行状態、例えば走行速度に対応する自律走行体10の制動距離に基づいて適宜設定されたものでもよい。
【0050】
図4に示すように、次にステップS19に進み、制御装置32は、ステップS11からステップS15までの処理で取得又は導出された観測点群PC1、補助点群PC2、仮想観測点群PCi1、及び仮想補助点群PCi2のうち、ステップS16からステップS18までの処理で除去されずに残っているものを障害物点群PCobとして導出する。言い換えれば、制御装置32は、観測領域A1内の観測点群PC1、観測領域A1内の補助点群PC2、観測領域A1外の仮想観測点群PCi1、及び観測領域A1外の仮想補助点群PCi2のうち、探索領域A2内に位置するものを、障害物点群PCobとして導出する。
【0051】
制御装置32は、障害物点群PCobとして導出された観測点群PC1及び仮想観測点群PCi1を過去観測点群として、補助点群PC2及び仮想補助点群PCi2を過去補助点群として、観測時刻t1を過去観測時刻t2として、それぞれ補助記憶装置35に記憶することで、前回の更新周期の障害物点群PCobを更新する。ステップS19の処理の終了後、制御装置32は、障害物点群導出処理を終了し、ステップS2に進む。
【0052】
図3に示すように、次にステップS2に進み、制御装置32は、ステップS1で導出された障害物点群PCobに基づき、探索領域A2内に障害物Ob1が存在するか否かを判定する。判定方法は任意であるが、例えば探索領域A2内に障害物点群PCobの少なくとも一部が含まれているか否かを判定する。ステップS2の判定結果が否定、すなわち探索領域A2内に障害物Ob1が存在しないと判定された場合、ステップS3に進み、制御装置32は自律走行体10に通常走行を継続させ、障害物回避処理を終了する。一方、ステップS2の判定結果が肯定、すなわち探索領域A2内に障害物Ob1が存在すると判定された場合、ステップS4に進む。
【0053】
制御装置32は、ステップS4において、自律走行体10に回避走行を行わせることで、自律走行体10に障害物点群PCobによって示される障害物Ob1を回避させる。回避走行とは、ステップS2で存在すると判定された障害物Ob1を回避することができる方向への走行である。回避走行の一例として、制御装置32は障害物点群PCobの位置に基づき走行方向の決定を行う。制御装置32は、探索領域A2内に障害物点群PCobを含まない領域であって、障害物点Pobの間隔が走行可能幅以上の領域があるか否かを探索する。制御装置32は、当該走行可能幅以上の領域のうち、走行体中心位置Pから当該領域に向かう方向と最も走行経路Rの向かう方向との角度が最も小さい方向を、自律走行体10の走行方向に決定する。その後、制御装置32は、当該走行方向に自律走行体10を走行させる。言い換えれば、制御装置32は、障害物点Pobの間隔が走行可能幅未満となっている領域、本実施形態では障害物点Pobで示される領域、を自律走行体10に迂回させることで、自律走行体10に障害物Ob1を回避させる。ステップS4の処理を実行する制御装置32が本実施形態の回避部に相当する。
【0054】
ステップS4の処理が開始してから所定の更新期間の経過後、制御装置32は、ステップS1に戻り、再度、障害物点群導出処理を行う。これにより、制御装置32は、更新期間の経過ごとに障害物点群PCobを導出する。
【0055】
なお、回避走行の結果、探索領域A2内に障害物Ob1が存在しないと判断された場合、ステップS2での判定結果が否定となるため、制御装置32は、自律走行体10に通常走行を行わせる。
【0056】
<作用>
次に、本実施形態の作用について説明する。
図1に示すように観測領域A1内かつ探索領域A2内に障害物Ob1が存在しない場合、ステップS1の障害物点群導出処理で導出される障害物点群PCobはない。そのため、ステップS2の判定結果が否定となり、ステップS3に進み、制御装置32は、自律走行体10に通常走行を行わせる。
【0057】
一方、
図5に示すように、観測領域A1内に障害物Ob1がある場合、センサ31が障害物Ob1を観測する。制御装置32は、センサ31の観測結果に基づきステップS1からステップS3までの処理を実行することにより、観測点群PC1の取得及び補助点群PC2の導出を行う。なお、過去観測点群及び過去補助点群が記憶されていない場合、ステップS13からステップS15までの処理によって導出される仮想観測点群PCi1及び仮想補助点群PCi2は存在しない。
【0058】
そして、制御装置32がステップS16の処理を実行することにより、制御装置32は、遮蔽領域A11内で生成された補助点群PC2のうち、観測領域A1外に位置するものを除去し、ステップS11からステップS18までの処理で残った観測点群PC1及び補助点群PC2を障害物点群PCobとして導出する。したがって、障害物点群PCobに含まれる観測点群PC1及び補助点群PC2は、探索領域A2内にのみ存在する。
【0059】
図5に示す状況のように、観測領域A1内に障害物が観測された場合、障害物点群PCobが探索領域A2内に存在する。そのため、ステップS2の判定が肯定となる。これにより、制御装置32は、自律走行体10の走行方向を決定し、自律走行体10に回避走行を行わせる。
【0060】
図6に示すように、自律走行体10は、回避走行を開始してから所定の更新期間が経過する間に、移動量δだけ移動し、
図5に示す状況から
図6に示す状況に至る。このとき、制御装置32は再度ステップS1に戻り、障害物点群導出処理を行う。これにより、前回取得した観測時刻t1、すなわち過去観測時刻t2から更新期間の経過後の障害物点群PCobを導出する。
【0061】
図6に示す状況において、制御装置32は、再びステップS1の処理を行うことで、観測領域A1内で観測点群PC1並びに観測時刻t1の取得、及び補助点群PC2の生成を行う。
図6に示す状況では、自律走行体10が回避走行を行うことにより、障害物Ob1の一部が観測領域A1外へと移動している。そのため、センサ31は、当該観測領域A1外へと移動した障害物Ob1を観測することができない。
【0062】
ここで、制御装置32は、前回の障害物点群導出処理で得られた観測点群PC1を過去観測点群として、観測時刻t1を過去観測時刻t2として、補助点群PC2を過去補助点群として、それぞれ補助記憶装置35に記憶している。制御装置32は、これらの情報を補助記憶装置35から取得することで、ステップS15にて仮想観測点群PCi1及び仮想補助点群PCi2を導出し、仮想観測点群PCi1及び仮想補助点群PCi2を含む障害物点群PCobを導出する。
図6に示す状況では、探索領域A2内に障害物点群PCobが存在するため、ステップS2の判定結果が肯定となり、制御装置32は、再び自律走行体10に回避走行を行わせる。
【0063】
図7に示すように、自律走行体10は、回避走行を開始してから所定の更新期間が経過する間に、
図6に示す状況から移動量δだけ移動し、
図7に示す状況へ至る。その後、制御装置32は再度ステップS1に戻り、障害物点群導出処理を行う。これにより、前回取得した観測時刻t1、すなわち過去観測時刻t2から更新期間の経過後の障害物点群PCobを導出する。
【0064】
ここで、仮想観測点群PCi1及び仮想補助点群PCi2は、前回導出された障害物点群PCobを移動量δだけ移動させた点群である。そのため、障害物点群PCobのうち、仮想観測点群PCi1及び仮想補助点群PCi2は、自律走行体10の回避走行によって観測領域A1外へと移動した障害物Ob1の位置を示す。したがって、制御装置32は、センサ31で観測されていない障害物Ob1の位置を把握した上で、自律走行体10に回避走行を行わせる。
【0065】
図7に示す状況において、制御装置32は、再び障害物点群導出処理を行う。
図7に示す状況では、前回の回避走行によって、障害物Ob1の全部が観測領域A1外に位置することとなる。障害物Ob1がセンサ31によって観測されないため、ステップS11で取得される観測点群PC1は存在しない。これに伴い、遮蔽領域A11が存在しなくなるため、ステップS3で生成される補助点群PC2は存在しない。
【0066】
しかし、制御装置32は、前回の障害物点群導出処理で得られた観測点群PC1及び仮想観測点群PCi1を過去観測点群として、補助点群PC2及び仮想補助点群PCi2を過去補助点群として、
図7に示す状況における仮想観測点群PCi1及び仮想補助点群PCi2を導出する。このとき、観測領域A1内に含まれる仮想補助点群PCi2は除去される。当該仮想観測点群PCi1及び当該仮想補助点群PCi2は、探索領域A2内に含まれているため、ステップS2の判定結果は肯定となり、制御装置32は、自律走行体10に仮想補助点群PCi2を回避しつつ走行経路Rへと向かうように、回避走行を行わせる。その後、当該回避走行によって、
図7に示す状況から
図8に示す状況へ至る。
【0067】
図8に示す状況において、制御装置32は、再び障害物点群導出処理を行う。
図8に示す状況では、前回の回避走行によって、自律走行体10が走行経路Rに戻るとともに、障害物Ob1の全部が観測領域A1外に位置することとなる。このとき、障害物Ob1がセンサ31によって観測されないため、ステップS11で取得される観測点群PC1は存在しない。これに伴い、遮蔽領域A11が存在しなくなるため、ステップS3で生成される補助点群PC2は存在しない。また、障害物Ob1の一部は、探索領域A2外に位置することとなる。これに伴い、導出される仮想観測点群PCi1及び仮想補助点群PCi2の一部は、探索領域A2外に位置することとなる。そのため、ステップS18の処理によって、探索領域A2外に位置する仮想観測点群PCi1及び仮想補助点群PCi2が除去される。
【0068】
探索領域A2内に仮想観測点群PCi1又は仮想補助点群PCi2が存在する場合には、制御装置32は、当該仮想補助点群PCi2を含む障害物点群PCobを回避するように回避走行を行いつつ、走行経路R上を走行する。その後、仮想観測点群PCi1及び仮想補助点群PCi2が探索領域A2外に位置することとなる場合、ステップS18の処理によって障害物点群PCobの全てが探索領域A2内から除去されることとなる。これにより、ステップS2での判定結果が否定となり、制御装置32は、自律走行体10に通常走行を行わせる。
【0069】
<効果>
上記実施形態によれば、以下の効果を奏する。
(1)制御装置32は、ステップS1の障害物点群導出処理で導出された障害物点群PCobに基づき、自律走行体10に、当該障害物点群PCobによって示される障害物Ob1を回避させる。
【0070】
障害物点群PCobは、観測領域A1内の障害物Ob1の位置を示す観測点群PC1と、過去にセンサ31によって観測された障害物Ob1であって、自律走行体10の移動によって観測領域A1外に位置することとなった障害物Ob1の位置を示す仮想観測点群PCi1と、を含む。
【0071】
制御装置32は、ステップS1の障害物点群導出処理において、センサ31の観測結果に基づき観測点群PC1を取得するステップS11の処理と、過去観測点群の取得からステップS11での観測点群PC1の取得までの自律走行体10の移動量δを取得するステップS14の処理と、過去観測点群を移動量δだけ移動させることで、仮想観測点群PCi1を導出するステップS15の処理と、を実行する。
【0072】
これによれば、仮想観測点群PCi1は、過去に観測された観測点群PC1を自律走行体10の移動量δだけ移動させることで得られる。仮想観測点群PCi1は、過去に観測された観測点群PC1によって示される障害物Ob1が、制御装置32による観測点群PC1の取得が行われるタイミングでどこに位置するかを示す。制御装置32は、センサ31の観測領域A1内の障害物Ob1の位置を示す観測点群PC1のみならず、仮想観測点群PCi1を考慮した回避を自律走行体10に行わせる。これにより、制御装置32を用いることで、自律走行体10は、過去に観測された障害物Ob1がセンサ31の観測領域A1外に位置している場合でも、当該障害物Ob1を考慮した上で、障害物Ob1の回避を行うことができる。したがって、自律走行体10の障害物Ob1の回避性能を向上することができる。
【0073】
(2)制御装置32は、障害物点群導出処理において、ステップS11で取得された観測点群PC1に基づき、観測領域A1のうち、障害物Ob1によって遮られる遮蔽領域A11内に補助点群PC2を生成するステップS12の処理と、過去に生成された補助点群PC2である過去補助点群を移動量δだけ移動させることで、観測領域A1外に位置する仮想補助点群PCi2を導出するステップS15の処理と、を実行する。そして、障害物点群PCobは、上記補助点群PC2と、上記仮想補助点群PCi2と、を含む。
【0074】
障害物Ob1によってセンサ31の観測が遮られると、自律走行体10に対して当該障害物Ob1より奥の領域をセンサ31で観測することが困難となる。
そこで、本構成によれば、このような遮蔽領域A11に補助点群PC2が生成される。過去に生成された補助点群PC2が自律走行体10の移動によってセンサ31の観測領域A1外に移動することとなった場合、当該補助点群PC2を自律走行体10の移動量δだけ移動させることで、仮想補助点群PCi2が導出される。このようにして導出された仮想補助点群PCi2は、センサ31の観測領域A1であったにも関わらず障害物Ob1によってセンサ31が観測できなかった領域を示す。障害物点群PCobが仮想補助点群PCi2を含むため、自律走行体10は回避の際に、仮想補助点群PCi2によって表されている領域を避けて回避を行うことができる。障害物Ob1によってセンサ31が観測できなかった領域を避けつつ障害物Ob1を回避することができる。したがって、自律走行体10が障害物Ob1によって遮蔽された領域の物体と接触する可能性を抑制することができる。
【0075】
(3)観測領域A1内に障害物Ob1が存在する場合、観測領域A1は、遮蔽領域A11と、遮蔽領域A11以外の観測可能領域A12とにより構成される。制御装置32は、ステップS1の障害物点群導出処理において、補助点群PC2及び仮想補助点群PCi2のうち、観測可能領域A12内に含まれるものを障害物点群PCobから除去するステップS16の処理を実行する。
【0076】
これによれば、観測可能領域A12は、障害物Ob1によって遮られずにセンサ31によって観測が行われた観測領域A1を示す。そのため、補助点群PC2及び仮想補助点群PCi2のうち、観測可能領域A12に含まれるものを障害物点群PCobから除去することで、一旦は障害物Ob1が存在する可能性があると判断された領域に障害物Ob1がないことが確認された場合には、自律走行体10は、当該領域を走行して障害物Ob1を回避することができる。したがって、障害物Ob1を回避する際の経路の短縮を図ることができる。
【0077】
(4)制御装置32は、自律走行体10の少なくとも一部を含む探索領域A2内に含まれる障害物点群PCobによって示される障害物Ob1を自律走行体10に回避させるステップS3の処理を実行する。
【0078】
これによれば、回避する必要がないほど遠い障害物Ob1を自律走行体10が回避しようとする不都合が生じることを抑制することができる。
<変形例>
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変形例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0079】
・探索領域A2は任意に設定可能であり、探索領域A2の形状としては、矩形又は台形等の多角形、円形、半円形など、任意の閉領域を採用することができる。
・制御装置32は、探索領域A2外に障害物点群PCobが存在する場合にも自律走行体10に回避走行を行わせてもよい。これに伴い、制御装置32は、探索領域A2外の各点群PC1,PCi1,PC2,PCi2を除去するステップS18の処理を省略してもよい。この場合、探索領域A2は設定されていなくてもよい。
【0080】
・制御装置32は、ステップS13において過去観測点群の一部を取得してもよい。取得される過去観測点群を構成する過去観測点同士の間隔は、例えば、自律走行体10の走行可能幅未満である。
【0081】
・制御装置32は、ステップS15において、ステップS13で取得した過去観測点群のうちの一部を移動量δだけ移動させることで仮想観測点群PCi1を導出してもよい。この場合、仮想観測点群PCi1を構成する仮想観測点Pi1同士の間隔は、走行可能幅未満であるとよい。
【0082】
これによれば、導出される仮想観測点群PCi1に含まれる仮想観測点Pi1の数を削減することで、制御装置32の処理負荷の軽減を図ることができる。
・同様に、制御装置32は、ステップS13において過去補助点群の一部を取得してもよい。取得される過去補助点群を構成する過去補助点同士の間隔は、自律走行体10の走行可能幅未満である。
【0083】
・制御装置32は、ステップS15で仮想観測点群PCi1を導出する際に、過去観測点群の一部に限らず全部を用いてもよい。同様に、制御装置32は、ステップS15で仮想補助点群PCi2を導出する際に、過去補助点群の一部に限らず全部を用いてもよい。制御装置32は、ステップS15で導出される仮想観測点群PCi1を仮想観測点Pi1同士の間隔は任意である。
【0084】
・制御装置32は、観測可能領域A12内の補助点群PC2及び仮想補助点群PCi2を除去するステップS15の処理を省略してもよい。
・制御装置32は、遮蔽領域A11内に補助点群PC2を生成するステップS13の処理を省略してもよい。
【0085】
障害物点群PCobは、観測点群PC1と仮想観測点群PCi1とを含んでいればよい。
・自律走行体10に対する障害物Ob1の相対座標を測定可能であれば、センサ31の具体的態様は任意である。例えば、センサ31として、複数の超音波センサを用いてもよい。超音波センサは、超音波を照射することで距離を測定可能である。超音波センサは、互いに間隔を空けて車体21に搭載される。制御装置32は、各超音波センサが観測する反射波の強度に基づき、障害物Ob1の距離及び角度、すなわち、障害物Ob1の相対座標を取得することができる。別例として、センサ31は、LIDAR:Laser Imaging Detection and Ranging、レーザーレンジファインダ、ToF(Time of Flight)カメラ等のように対象との距離及び角度を観測可能なものであってもよい。
【0086】
・ステップS11での観測点群PC1の取得方法は任意である。制御装置32は、例えばセンサ31がLIDARから得られる点群を適切な座標系に変換することで取得してもよい。
【0087】
・走行体中心位置Pとセンサ位置Psは、一致していてもよい。
・自律走行体10の具体的態様は任意である。例えば車輪22として、全方向移動車輪に限らず任意の車輪を採用できる。車輪22の数は4つに限らず任意である。
【符号の説明】
【0088】
10…自律走行体、31…センサ、32…制御装置、A1…観測領域、A11…遮蔽領域、A12…観測可能領域、A2…探索領域、Ob1…障害物、PC1…観測点群、PC2…補助点群、PCi1…仮想観測点群、PCi2…仮想補助点群、PCob…障害物点群、δ…移動量。