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