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

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

▶ 本田技研工業株式会社の特許一覧

<>
  • 特許-制御装置、制御方法、およびプログラム 図1
  • 特許-制御装置、制御方法、およびプログラム 図2
  • 特許-制御装置、制御方法、およびプログラム 図3
  • 特許-制御装置、制御方法、およびプログラム 図4
  • 特許-制御装置、制御方法、およびプログラム 図5
  • 特許-制御装置、制御方法、およびプログラム 図6
  • 特許-制御装置、制御方法、およびプログラム 図7
  • 特許-制御装置、制御方法、およびプログラム 図8
  • 特許-制御装置、制御方法、およびプログラム 図9
  • 特許-制御装置、制御方法、およびプログラム 図10
  • 特許-制御装置、制御方法、およびプログラム 図11
  • 特許-制御装置、制御方法、およびプログラム 図12
  • 特許-制御装置、制御方法、およびプログラム 図13
  • 特許-制御装置、制御方法、およびプログラム 図14
  • 特許-制御装置、制御方法、およびプログラム 図15
  • 特許-制御装置、制御方法、およびプログラム 図16
  • 特許-制御装置、制御方法、およびプログラム 図17
  • 特許-制御装置、制御方法、およびプログラム 図18
  • 特許-制御装置、制御方法、およびプログラム 図19
  • 特許-制御装置、制御方法、およびプログラム 図20
  • 特許-制御装置、制御方法、およびプログラム 図21
  • 特許-制御装置、制御方法、およびプログラム 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-02-06
(45)【発行日】2025-02-17
(54)【発明の名称】制御装置、制御方法、およびプログラム
(51)【国際特許分類】
   G05D 1/628 20240101AFI20250207BHJP
   G05D 1/243 20240101ALI20250207BHJP
   G05D 1/43 20240101ALI20250207BHJP
   G01C 21/34 20060101ALI20250207BHJP
   G08G 1/16 20060101ALI20250207BHJP
【FI】
G05D1/628
G05D1/243
G05D1/43
G01C21/34
G08G1/16 C
【請求項の数】 9
(21)【出願番号】P 2023169287
(22)【出願日】2023-09-29
【審査請求日】2024-03-28
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】津田 浩平
(72)【発明者】
【氏名】松▲崎▼ 燦心
【審査官】田中 友章
(56)【参考文献】
【文献】特開2010-066932(JP,A)
【文献】特開2014-123200(JP,A)
【文献】特開2021-071814(JP,A)
【文献】国際公開第2021/060018(WO,A1)
【文献】中国特許出願公開第103017757(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/628
G05D 1/243
G05D 1/43
G01C 21/34
G08G 1/16
(57)【特許請求の範囲】
【請求項1】
移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識する認識部と、
前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成する占有格子図生成部と、
前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成する経路生成部と、を備え、
前記占有格子図生成部は、
前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定し、
物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成し、
前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する、
制御装置。
【請求項2】
前記経路生成部は、前記占有格子図における前記第2輪郭に囲まれない領域である第2領域において前記移動体が進むべき経路を生成し、
前記経路に沿って前記移動体が移動するよう、前記移動体を駆動する駆動装置を制御する駆動制御部を更に備える、
請求項1に記載の制御装置。
【請求項3】
前記占有格子図生成部は、
前記第1輪郭に含まれる複数の頂点の中から第1頂点を選択し、
前記第1頂点を中心とした第1範囲内における前記第1領域の占める割合に基づいて、前記第1頂点を前記第1輪郭から削除するか否かを判定する、
請求項1に記載の制御装置。
【請求項4】
前記占有格子図生成部は、
前記割合が第1閾値以上である場合、前記第1頂点を前記第1輪郭から削除し、
前記割合が前記第1閾値未満である場合、前記第1頂点を前記第1輪郭から削除しない、
請求項3に記載の制御装置。
【請求項5】
前記占有格子図生成部は、
前記第1頂点が削除された前記第1輪郭に含まれる複数の頂点の中から第2頂点を選択し、
前記第2頂点から前記第2頂点と隣接する2つの頂点に伸ばした2つの線分によって形成される角度および前記2つの線分の長さの合計に基づいて、前記第2頂点を前記第1輪郭から削除するか否かを判定する、
請求項3に記載の制御装置。
【請求項6】
前記占有格子図生成部は、
前記角度と180度との差が第2閾値未満であり、かつ、前記2つの線分の長さの合計が第3閾値以上である場合、前記第2頂点を前記第1輪郭から削除する、
請求項5に記載の制御装置。
【請求項7】
前記占有格子図生成部は、
前記第2頂点が削除された前記第1輪郭に含まれる複数の頂点の中から第3頂点を選択し、
前記占有格子図における前記移動体の位置から前記第3頂点までのユークリッド距離に基づいて、前記第3頂点を前記第1輪郭から削除するか否かを判定する、
請求項5に記載の制御装置。
【請求項8】
コンピュータが、
移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識し、
前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成し、
前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成し、
前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定し、
物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成し、
前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する、
制御方法。
【請求項9】
コンピュータに、
移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識する処理と、
前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成する処理と、
前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成する処理と、
前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定する処理と、
物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成する処理と、
前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法、およびプログラムに関する。
【背景技術】
【0002】
従来、予め設定された目的地まで自律的に移動する移動体が知られている。また、障害物等の物体との距離を感知して確率的に分布する格子点からなる占有率格子地図を作成し、移動体の半径または大きさに基づき占有率格子地図内の物体の厚さを厚くすることにより構成空間地図を作成する技術が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2008-47095号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の技術では、移動体の現在地から目的地までの経路を適切に生成できない場合があった。
【0005】
本発明は、このような事情を考慮してなされたものであり、移動体の現在地から目的地までの経路を適切に生成することができる情報処理システムを提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
この発明に係る制御装置、制御方法、およびプログラムは、以下の構成を採用した。
(1):この発明の一態様に係る制御装置は、移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識する認識部と、前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成する占有格子図生成部と、前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成する経路生成部と、を備え、前記占有格子図生成部は、前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定し、物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成し、前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する、制御装置である。
【0007】
(2):上記(1)の態様において、前記経路生成部は、前記占有格子図における前記第2輪郭に基づき、前記第1領域を含まない第2領域において前記移動体が進むべき経路を生成し、前記制御装置は、前記経路に沿って前記移動体が移動するよう、前記移動体を駆動する駆動装置を制御する駆動制御部を更に備えるものである。
【0008】
(3):上記(1)の態様において、前記占有格子図生成部は、前記第1輪郭に含まれる複数の頂点の中から第1頂点を選択し、前記第1頂点を中心とした第1範囲内における前記第1領域の占める割合に基づいて、前記第1頂点を前記第1輪郭から削除するか否かを判定するものである。
【0009】
(4):上記(3)の態様において、前記占有格子図生成部は、前記割合が第1閾値以上である場合、前記第1頂点を前記第1輪郭から削除し、前記割合が前記第1閾値未満である場合、前記第1頂点を前記第1輪郭から削除しないものである。
【0010】
(5):上記(3)の態様において、前記占有格子図生成部は、前記第1頂点が削除された前記第1輪郭に含まれる複数の頂点の中から第2頂点を選択し、前記第2頂点から前記第2頂点と隣接する2つの頂点に伸ばした2つの線分によって形成される角度および前記2つの線分の長さの合計に基づいて、前記第2頂点を前記第1輪郭から削除するか否かを判定するものである。
【0011】
(6):上記(5)の態様において、前記占有格子図生成部は、前記角度と180度との差が第2閾値未満であり、かつ、前記2つの線分の長さの合計が第3閾値以上である場合、前記第2頂点を前記第1輪郭から削除するものである。
【0012】
(7):上記(5)の態様において、前記占有格子図生成部は、前記第2頂点が削除された前記第1輪郭に含まれる複数の頂点の中から第3頂点を選択し、前記占有格子図における前記移動体の位置から前記第3頂点までのユークリッド距離に基づいて、前記第3頂点を前記第1輪郭から削除するか否かを判定するものである。
【0013】
(8):上記(1)の態様において、前記占有格子図生成部は、前記第1領域の複数の頂点を凸包で接続することにより前記第1輪郭を生成し、前記第1輪郭に含まれる複数の直線の各々に対応する複数の平行線を生成し、前記複数の平行線を接続することで前記第1領域を膨張させ、膨張させた前記第1領域を凹包で接続することにより、前記第2輪郭を生成するものである。
【0014】
(9):この発明の一態様に係る制御方法は、コンピュータが、移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識し、前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成し、前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成し、前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定し、物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成し、前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する、制御方法である。
【0015】
(10):この発明の一態様に係るプログラムは、コンピュータに、移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識する処理と、前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成する処理と、前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成する処理と、前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定する処理と、物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成する処理と、前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する処理と、を実行させるプログラムである。
【発明の効果】
【0016】
(1)~(10)の態様によれば、移動体の現在地から目的地までの経路を適切に生成することができる。
【図面の簡単な説明】
【0017】
図1】移動体を含む移動体システムの構成の一例を示す図である。
図2】移動体を示す斜視図である。
図3】移動体の機能構成の一例を示す図である。
図4】占有格子図におけるスタート地点からゴール地点までの第1経路の一例を示す図である。
図5】占有格子図におけるスタート地点からゴール地点までの第2経路の一例を示す図である。
図6】占有格子図の一例を示す図である。
図7】第1領域の輪郭における頂点を検出する処理を説明するための図である。
図8】走査用の配列の一例を示す図である。
図9】頂点の探索の具体例を説明するための図である。
図10】第1群の輪郭と第2群の輪郭の一例を示す図である。
図11】走査用の配列の一例を示す図である。
図12】頂点削除処理が行われた第1群の輪郭と第2群の輪郭の一例を示す図である。
図13】更なる頂点削除処理を説明するための図である。
図14】更なる頂点削除処理が行われた第1群の輪郭と第2群の輪郭の一例を示す図である。
図15】移動体の位置からのユークリッド距離に基づく頂点削除処理を説明するための図である。
図16】制御装置によって実行される処理を示すフローチャートの一例である。
図17】第2実施形態における占有格子図の一例を示す図である。
図18】走査用の配列の一例を示す図である。
図19】線形膨張処理が行われた占有格子図の一例を示す図である。
図20】第1輪郭を生成するとともに、第1輪郭を平行に膨張させる処理を説明するための図である。
図21】平行膨張と重心膨張の一例を示す図である。
図22】第2実施形態における第2輪郭の一例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照し、本発明の制御装置、制御方法、およびプログラムの実施形態について説明する。本発明の制御装置は、移動体の駆動装置を制御して移動体を移動させるものである。本発明における移動体は、歩行者が歩行する領域を自律的に移動するものである。歩行者が歩行する領域とは、歩道、公開空地、建物内のフロアなどであり、車道を含んでもよい。以下の説明では移動体には人が搭乗しないものとするが、移動体に人が搭乗しても構わない。移動体は、例えば、予め与えられた目的地に向かいつつ、ユーザの少し先を移動することで、ユーザの移動の妨げになる他の歩行者がユーザに近づき過ぎないように動作する(つまり、ユーザに道をつくるように動作する)ものであってもよい。なお、このような動作は常時行われるのではなく、一時的に行われてもよい。例えば、移動体がユーザと並走、又はユーザを追走し、ユーザの進行方向上に所定の状況(例えば、障害物の存在や交通状況の混雑など)を検知した場合に、移動体が、本発明のアルゴリズムを実行することにより、一時的にユーザを先導してもよい。
【0019】
<第1実施形態>
図1は、移動体100を含む移動体システム1の構成の一例を示す図である。移動体システム1は、例えば、一以上の端末装置2と、管理装置10と、情報提供装置20と、一以上の移動体100とを含む。これらは、例えば、ネットワークNWを介して通信を行う。ネットワークNWは、例えば、LAN、WAN、インターネット回線などの任意のネットワークである。
【0020】
[端末装置]
端末装置2は、例えば、スマートフォンや、タブレット端末などのコンピュータ装置である。端末装置2は、例えば、利用者の操作に基づいて、管理装置10から移動体100の利用の権限の提供をリクエストしたり、利用の許可がされたことを示す情報を取得したりする。
【0021】
[管理装置]
管理装置10は、端末装置2のリクエストに応じて、移動体100の利用の権限を端末装置2のユーザに付与したり、移動体100の利用の予約を管理したりするコンピュータである。管理装置10は、例えば、予め登録されたユーザの識別情報と、移動体100の利用予約の日時とを対応付けたスケジュール情報を生成し管理する。なお、ユーザへの権限の付与や予約管理を行う必要が無い場合には、管理装置10を省略しても構わない。
【0022】
[情報提供装置]
情報提供装置20は、地図情報を移動体100に提供するコンピュータである。例えば、情報提供装置20は、移動体100の位置を示す位置情報を移動体100から取得し、移動体100の周辺の地図である地図情報を移動体100に提供する。
【0023】
[移動体]
図2は、移動体100を示す斜視図である。以下の説明では、移動体100の前方方向をプラスx方向、移動体100の後方方向をマイナスx方向、移動体100の幅方向であってプラスx方向を基準に左方向をプラスy方向、右方向をマイナスy方向、x方向およびy方向に直交する方向であって移動体100の高さ方向をプラスz方向として説明する。
【0024】
移動体100は、例えば、基体110と、基体110に設けられた扉部112と、基体110に組み付けられた車輪(第1車輪120、第2車輪130および第3車輪140)とを備える。例えば、ユーザは、扉部112を開放して、基体110に設けられた収納部に荷物を入れたり、収納部から荷物を取り出したりすることができる。第1車輪120および第2車輪130は駆動輪であり、第3車輪140は補助輪(従動輪)である。移動体100は、無限軌道などの車輪以外の構成を用いて移動してもよい。
【0025】
基体110のプラスz方向の面には、プラスz方向に延在する円柱状の支持体150が設けられている。支持体150のプラスz方向の端部には、移動体100の周囲を撮像するカメラ180が設けられている。カメラ180が設けられる位置は、上記とは異なる任意の位置であってもよい。
【0026】
カメラ180は、例えば、移動体100の周辺を広角に(例えば360度で)撮像可能なカメラである。カメラ180は、複数のカメラを含んでもよい。カメラ180は、例えば、複数の120度カメラまたは複数の60度カメラが組み合わされて実現されてもよい。
【0027】
図3は、移動体100の機能構成の一例を示す図である。移動体100は、図2に示した機能構成に加え、更に、通信部190、制御装置200、および駆動装置300を備える。通信部190は、端末装置2、管理装置10または情報提供装置20と通信するための通信インターフェースである。
【0028】
[駆動装置]
駆動装置300は、第1モータ302、第2モータ304、バッテリー306、ブレーキ装置308、およびステアリング装置310を備える。第1モータ302および第2モータ304は、バッテリー306に供給される電力によって稼働する。第1モータ302は第1車輪120を駆動させ、第2モータ304は第2車輪130を駆動させる。第1モータ302は第1車輪120のホイールに設けられるインホイールモータであり、第2モータ304は第2車輪130のホイールに設けられるインホイールモータであってもよい。
【0029】
ブレーキ装置308は、制御装置200の指示に基づいてブレーキトルクを各車輪に出力する。ステアリング装置310は、電動モータを備える。電動モータは、例えば、制御装置200の指示に基づいてラックアンドピニオン機構に力を作用させて第1車輪120または第2車輪130の向きを変更して、移動体100の進路を変更する。
【0030】
[制御装置]
制御装置200は、例えば、位置特定部202と、情報処理部204と、認識部206と、占有格子図生成部208と、経路生成部210と、駆動制御部212と、記憶部220とを備える。位置特定部202と、情報処理部204と、認識部206と、占有格子図生成部208と、経路生成部210と、駆動制御部212とは、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めHDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
【0031】
記憶部220は、HDDやフラッシュメモリ、RAM(Random Access Memory)などの記憶装置により実現される。記憶部220には、制御情報222、地図情報224、および占有格子図226等の情報が記憶されている。制御情報222は、駆動制御部212によって実行される、移動体100の行動を制御するための制御プログラムである。地図情報224は、例えば、移動体100の周辺の地図情報である。占有格子図226は、複数の格子を含み、移動体100の周辺において物体が存在する位置を示す図である。占有格子図226の詳細については後述する。
【0032】
なお、制御装置200に含まれる機能構成の一部または全部は、他の装置に含まれてもよい。例えば、他の装置と移動体100とが通信して協働して移動体100を制御してもよい。
【0033】
位置特定部202は、移動体100の位置を特定する。位置特定部202は、移動体100に内蔵されたGPS(Global Positioning System)装置(不図示)により移動体100の位置情報を取得する。位置情報とは、例えば、二次元の地図座標でもよく、緯度経度情報でもよい。また、位置特定部202は、カメラ180により撮像されたカメラ画像や、Lidarなどのセンサを用いたいわゆるSLAMなどの手法によって、環境地図作成と同時に移動体100の位置を推定しても良い。
【0034】
情報処理部204は、端末装置2、管理装置10、または情報提供装置20から取得した情報を管理する。例えば、情報処理部204は、位置特定部202によって取得された位置情報を情報提供装置20に送信することにより、移動体100の周辺の地図である地図情報224を情報提供装置20から取得する。情報処理部204は、情報提供装置20から取得した地図情報224を記憶部220に記憶する。
【0035】
認識部206は、例えば、カメラ180が撮像した画像に基づいて、移動体100の周辺に存在する物体の位置(移動体100からの距離と移動体100に対する方向)、および速度、加速度等の状態を認識する。物体とは、交通参加者や、施設内や道路に存在する障害物などを含む。なお、移動体100にはレーダ装置やLIDARなどカメラとは異なる検出部が設けられていてもよい。この場合、認識部206は、画像に代えて(または加えて)、レーダ装置やLIDARの検出結果を用いて移動体100の周辺の状況を認識する。
【0036】
占有格子図生成部208は、認識部206によって認識された移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図226を生成する。占有格子図226の具体的な生成方法については後述する。
【0037】
経路生成部210は、地図情報224に基づいてユーザが指定した目的地の位置を把握する。また、経路生成部210は、占有格子図生成部208によって生成された占有格子図226に基づき、移動体100が進むべき経路を生成する。経路は、例えば所定距離空けて並べられる複数の経路点を連ねたものとして生成されてよい。経路生成部210は、例えば、周辺の物体を避けながら目的地に向かうための経路を生成する。
【0038】
駆動制御部212は、経路生成部210によって生成された経路に沿って移動体100が移動するように、移動体100に取り付けられた駆動装置300(第1モータ302、第2モータ304、ブレーキ装置308、およびステアリング装置310)を制御する。
【0039】
[経路生成における課題]
図4は、占有格子図におけるスタート地点Sからゴール地点Gまでの第1経路R1の一例を示す図である。占有格子図は、複数の格子を含み、移動体100の周辺において物体が存在する位置を示す図である。領域232は、認識部206によって物体が存在すると判定された領域である。領域234は、移動体100のサイズを考慮して領域232を膨張させた領域である。領域232を膨張させるのは、移動体100が物体に接触するのを防止するためである。第1領域A1は、領域232と領域234とを合わせた領域である。第1領域A1については、物体が存在するとみなされる。第2領域A2は、占有格子図における第1領域A1以外の領域である。
【0040】
移動体100は、占有格子図において第1領域A1の外周の複数の頂点を接続することで、第1領域A1の輪郭を生成する。移動体100がスタート地点Sからゴール地点Gまで移動する際には、第1領域A1の輪郭に沿って移動することとなる。具体的には、図4に示されるように、移動体100は、第1領域A1の輪郭を形成する複数の頂点を経由する第1経路R1を生成し、第1経路R1に沿ってスタート地点Sからゴール地点Gまで移動する。しかしながら、移動体100は各頂点の位置で車体を旋回する必要があり、移動距離も長くなるため、第1経路R1は適した経路とは言えない。
【0041】
図5は、占有格子図におけるスタート地点Sからゴール地点Gまでの第2経路R2の一例を示す図である。図5に示されるように、複数の頂点のうちのいくつかを削除することによって第1領域A1の輪郭を滑らかにすれば、第1経路R1よりも適した第2経路R2を生成することができる。以下、第1領域A1の輪郭を示す第1輪郭の生成処理の詳細について説明する。
【0042】
[第1輪郭の生成処理]
図6は、占有格子図226の一例を示す図である。占有格子図226の中心228は、移動体100の現在地に対応する。占有格子図生成部208は、認識部206によって認識された移動体の周辺に存在する物体の位置に基づいて、占有格子図226における複数の格子の各々に対して、物体が存在するか否かを判定する。図4に示される占有格子図226において、黒色の領域236は、物体が存在すると判定された格子を含む領域である。
【0043】
次に、占有格子図生成部208は、物体が存在すると判定された複数の格子の位置に基づいて膨張処理を行う。膨張処理は、物体が存在すると判定された格子を含む領域236を、移動体100のサイズを考慮して膨張させる処理である。膨張処理によって、物体が存在すると判定された領域が領域238まで拡大することとなる。第1領域A1は、領域236と領域238とを合わせた領域である。第1領域A1については、物体が存在するとみなされる。第2領域A2は、占有格子図における第1領域A1以外の領域である。
【0044】
図7は、第1領域A1の輪郭における頂点を検出する処理を説明するための図である。図7に示されるように、第1領域A1は、第1群G1と第2群G2とに分けられる。以下では一例として、第1群G1の輪郭における頂点を検出する方法について説明する。まず、占有格子図生成部208は、占有格子図226の右端から順番に下から上に探索を行っていくと、第1群G1に含まれる格子244を発見する。占有格子図生成部208は、発見した格子244を第1群の輪郭における頂点であると判断する。
【0045】
図8は、走査用の配列248の一例を示す図である。走査用の配列248は、頂点の探索に使用される配列である。図8に示されるように、走査用の配列248は、起点となる格子を中心とした3×3の配列である。占有格子図生成部208は、起点となる格子の下側の格子から反時計回りに頂点を探索する。
【0046】
図9は、頂点の探索の具体例を説明するための図である。なお、図9は、図7における領域246を拡大した図である。占有格子図生成部208は、格子244を起点として、走査用の配列248を用いて格子244に隣接する頂点を探索する。具体的に、図9の左図に示されるように、占有格子図生成部208は、格子244の周囲の5番目の位置に第1群G1に含まれる格子250を発見する。占有格子図生成部208は、発見した格子250に対し、第1群G1の輪郭における頂点であると判定する。
【0047】
次に、占有格子図生成部208は、発見した格子250を起点として、走査用の配列248を用いて格子250に隣接する頂点を探索する。この場合、走査用の配列248の1番目の位置は既に発見した格子244が存在するため、計算負荷を軽減するために、2番目の位置の格子から探索を行う。探索を開始する番号は、(前の番号+5)%8で求めることができる。ここで「%」は剰余演算子であり、除算した余りを演算する記号である。例えば、図9の右図に示される例の場合、前の番号(格子250を探索した際の番号)は5であるため、(5+5)%8=2となり、2番目の位置の格子から探索が行われることとなる。
【0048】
占有格子図生成部208は、以上の処理を繰り返すことで、第1群G1の輪郭における全ての頂点を検出することができる。また、占有格子図生成部208は、これと同様の処理を行うことにより、第2群G2の輪郭における全ての頂点についても検出する。
【0049】
図10は、第1群G1の輪郭252と第2群G2の輪郭254の一例を示す図である。図10に示されるように、占有格子図生成部208は、検出された第1群G1の複数の頂点を接続することで、第1群G1の輪郭252を生成する。また、占有格子図生成部208は、検出された第2群G2の複数の頂点を接続することで、第2群G2の輪郭254を生成する。図10における第1群G1の輪郭252および第2群G2の輪郭254は、第1領域A1の輪郭を示す第1輪郭である。
【0050】
[第2輪郭の生成処理]
次に、占有格子図生成部208は、生成した第1輪郭に基づいて、第1輪郭よりも頂点数が少なく第1領域A1を包含する第2輪郭を生成する。第1輪郭よりも頂点数を少なくするのは、前述したように、経路生成部210がより適した経路を生成できるようにするためである。以下、第2輪郭の生成処理の詳細について説明する。
【0051】
図11は、走査用の配列256の一例を示す図である。走査用の配列256は、頂点削除処理に使用される配列である。走査用の配列256は、第1輪郭の頂点であると判定された第1頂点を中心とした第1範囲内の領域を示す配列である。図11の例では、走査用の配列256は、第1輪郭の頂点であると判定された第1頂点を中心とし、この中心から半径r1以内(第1範囲内)の領域を示す配列であることする。具体的に、図11の例において、走査用の配列256は、中心から半径r1以内の21個の格子を含むこととなる。なお、第1範囲はこれに限らず、例えば第1輪郭の頂点であると判定された第1頂点を中心としたN×N(N:自然数)の格子図に含まれる領域としてもよい。
【0052】
具体的に、占有格子図生成部208は、第1輪郭の頂点であると判定された複数の頂点のうちの一つを第1頂点として選択し、第1頂点を中心とする走査用の配列256を作成する。次に、占有格子図生成部208は、作成した走査用の配列256内における第1領域(物体が存在すると判定された格子を含む領域)の占める割合Rに基づいて、第1頂点を第1輪郭から削除するか否かを判定する。
【0053】
例えば、占有格子図生成部208は、走査用の配列256内における第1領域に含まれる格子の個数を、走査用の配列256内の格子の総数(21)で除算することにより、割合Rを算出する。また、占有格子図生成部208は、割合Rが第1閾値(例えば、0.5)以上である場合、第1頂点を第1輪郭から削除する。一方、占有格子図生成部208は、割合Rが第1閾値(0.5)未満である場合、第1頂点を第1輪郭から削除しない。
【0054】
例えば、図10における頂点P1の場合、走査用の配列256内における第1領域に含まれる格子の個数は11である。このため、頂点P1についての割合R=11/21=0.523となる。この場合、割合Rは第1閾値TH1(0.5)以上であるため、占有格子図生成部208は、頂点P1を第1輪郭から削除すると判定する。一方、図10における頂点P2の場合、走査用の配列256内における第1領域に含まれる格子の個数は10である。このため、頂点P2についての割合R=10/21=0.476となる。この場合、割合Rは第1閾値TH1(0.5)未満であるため、占有格子図生成部208は、頂点P1を第1輪郭から削除しないと判定する。また、占有格子図生成部208は、第1輪郭の全ての頂点に対してこれと同様の処理を行う。
【0055】
図12は、頂点削除処理が行われた第1群G1の輪郭252と第2群G2の輪郭254の一例を示す図である。図10図12とを比較すると、第1群G1の輪郭252および第2群G2の輪郭254から、複数の頂点が削除されていることが分かる。なお、占有格子図生成部208は、図12に示される第1群G1の輪郭252と第2群G2の輪郭254から、更に複数の頂点を削除してもよい。以下、この点について詳細に説明する。
【0056】
図13は、更なる頂点削除処理を説明するための図である。占有格子図生成部208は、第1頂点が削除された第1輪郭に含まれる複数の頂点の中から第2頂点を選択する。また、占有格子図生成部208は、第2頂点から第2頂点と隣接する2つの頂点に伸ばした2つの線分によって形成される角度Degおよび2つの線分の長さの合計Dist1+Dist2に基づいて、第2頂点を第1輪郭から削除するか否かを判定する。
【0057】
例えば、占有格子図生成部208は、図12に示される第1群G1の輪郭252と第2群G2の輪郭254に含まれる複数の頂点の中から一つの頂点を第2頂点として選択する。また、占有格子図生成部208は、第2頂点から第2頂点と隣接する2つの頂点に伸ばした2つの線分によって形成される角度Degと180度との差が第2閾値(例えば、10度)未満であり、かつ、2つの線分の長さの合計Dist1+Dist2が第3閾値以上である場合、選択した第2頂点を第1輪郭から削除する。また、占有格子図生成部208は、これと同様の処理を、図12に示される第1群G1の輪郭252と第2群G2の輪郭254に含まれる全ての頂点に対して実行する。
【0058】
図14は、更なる頂点削除処理が行われた第1群G1の輪郭252と第2群G2の輪郭254の一例を示す図である。図12図14とを比較すると、第1群G1の輪郭252および第2群G2の輪郭254から、更に複数の頂点が削除されていることが分かる。具体的には、図12に示される複数の頂点P3~P8が第1群G1の輪郭252から削除され、図12に示される頂点P9が第2群G2の輪郭254から削除されている。
【0059】
このように、占有格子図生成部208は、第1輪郭よりも頂点数が少なく第1領域を包含する第2輪郭を、物体の輪郭として生成する。経路生成部210は、占有格子図226における第2輪郭に囲まれない領域である第2領域A2において移動体100が進むべき経路を生成する。駆動制御部212は、経路生成部210によって生成された経路に沿って移動体100が移動するよう、駆動装置300を制御する。これによって、経路生成部210はより適切な経路を生成することができ、移動体100は目的地までよりスムーズに移動することができる。
【0060】
なお、占有格子図生成部208は、移動体100の位置からのユークリッド距離に基づいて、図14に示される第1群G1の輪郭252と第2群G2の輪郭254から、更に複数の頂点を削除してもよい。以下、この点について詳細に説明する。
【0061】
図15は、移動体100の位置からのユークリッド距離に基づく頂点削除処理を説明するための図である。占有格子図生成部208は、第2頂点が削除された第1輪郭に含まれる複数の頂点の中から第3頂点を選択する。また、占有格子図生成部208は、占有格子図226における移動体100の位置258から第3頂点までのユークリッド距離に基づいて、第3頂点を第1輪郭から削除するか否かを判定する。
【0062】
例えば、占有格子図生成部208は、図14に示される第1群G1の輪郭252と第2群G2の輪郭254に含まれる複数の頂点の中から一つの頂点を第3頂点として選択する。また、占有格子図生成部208は、図15に示されるように、占有格子図226における移動体100の位置258から第3頂点までのユークリッド距離に基づき、移動体100の位置258を中心とする楕円260の範囲内に第3頂点が含まれるか否かを判定する。占有格子図生成部208は、楕円260の範囲内に第3頂点が含まれない場合、第3頂点を第1輪郭から削除する。また、占有格子図生成部208は、これと同様の処理を、図14に示される第1群G1の輪郭252と第2群G2の輪郭254に含まれる全ての頂点に対して実行する。これによって、第1輪郭に含まれる頂点の数を更に削減することができる。
【0063】
[フローチャート]
図16は、制御装置200によって実行される処理を示すフローチャートの一例である。本フローチャートによる処理は、ユーザの操作によって目的地が設定され、移動体100の動作の開始が指示されたことに応じて開始される。
【0064】
まず、認識部206は、移動体100の周辺の状況が撮像された画像に基づいて、移動体100の周辺に存在する物体の位置を認識する(ステップS100)。例えば、認識部206は、カメラ180が撮像した画像に基づいて、移動体100の周辺に存在する物体の位置を認識する。
【0065】
次に、占有格子図生成部208は、移動体100の周辺に存在する物体の位置に基づいて、占有格子図226における複数の格子の各々に対して、物体が存在するか否かを判定する(ステップS102)。これによって、例えば、図6に示される占有格子図226が生成される。
【0066】
次に、占有格子図生成部208は、物体が存在すると判定された格子を含む第1領域A1の輪郭を示す第1輪郭を生成する(ステップS104)。これによって、例えば、図10に示されるように輪郭252および254が生成される。
【0067】
次に、占有格子図生成部208は、第1輪郭よりも頂点数が少なく第1領域A1を包含する第2輪郭を生成する(ステップS106)。例えば、占有格子図生成部208は、図12、14、および15に示されるように、図10よりも頂点数が少ない輪郭252および254が生成される。
【0068】
次に、経路生成部210は、占有格子図226における第2輪郭に囲まれない領域である第2領域A2において移動体100が進むべき経路を生成する(ステップS108)。その後、駆動制御部212は、経路生成部210によって生成された経路に沿って移動体100が移動するよう、駆動装置300を制御する(ステップS110)。
【0069】
次に、制御装置200は、移動体100が目的地に到着したか否かを判定する(ステップS112)。移動体100が目的地に到着したと判定されなかった場合、制御装置200は、前述のステップS100に処理を戻す。一方、移動体100が目的地に到着したと判定された場合、制御装置200は、本フローチャートによる処理を終了する。
【0070】
以上説明したように、本実施形態の占有格子図生成部208は、移動体100の周辺に存在する物体の位置に基づいて、占有格子図226における複数の格子の各々に対して、物体が存在するか否かを判定する。また、占有格子図生成部208は、物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成する。更に、占有格子図生成部208は、第1輪郭よりも頂点数が少なく第1領域を包含する第2輪郭を、物体の輪郭として生成する。これによって、本実施形態の制御装置200は、移動体100の現在地から目的地までの経路を適切に生成することができる。
【0071】
<第2実施形態>
前述の第1実施形態では、占有格子図生成部208は、第1輪郭の頂点数を削減することで、第1輪郭よりも頂点数が少ない第2輪郭を生成することとした。一方、第2実施形態では、占有格子図226において物体が存在すると判定された領域を線形膨張させ、線形膨張された領域を凸包で囲むことで第1輪郭を生成し、第1輪郭を平行に膨張させた上で凹包で囲むことにより第2輪郭を生成することとする。以下、第2実施形態の詳細について説明する。
【0072】
図17は、第2実施形態における占有格子図226の一例を示す図である。占有格子図生成部208は、認識部206によって認識された移動体の周辺に存在する物体の位置に基づいて、占有格子図226における複数の格子の各々に対して、物体が存在するか否かを判定する。図17に示される占有格子図226において、黒色の格子262は物体が存在すると判定された格子である。
【0073】
次に、占有格子図生成部208は、物体が存在すると判定された複数の格子の位置に基づき、線形膨張処理を行う。線形膨張処理は、物体が存在すると判定された格子262を含む第1領域を直線的に膨張させる処理である。以下、線形膨張処理について説明する。
【0074】
図18は、走査用の配列264の一例を示す図である。走査用の配列264は、線形膨張処理に使用される配列である。走査用の配列264は、物体が存在すると判定された第1格子を中心とした第2範囲内の領域を示す配列である。図18の例では、走査用の配列264は、物体が存在すると判定された第1格子を中心とし、この中心から半径r2以内(第2範囲内)の領域を示す配列であることする。なお、第2範囲はこれに限らず、例えば物体が存在すると判定された第1格子を中心としたN×N(N:自然数)の格子図に含まれる領域としてもよい。
【0075】
具体的に、占有格子図生成部208は、物体が存在すると判定された複数の格子262のうちの一つを第1格子として選択し、第1格子を中心とする走査用の配列264を作成する。次に、占有格子図生成部208は、作成した走査用の配列264内に、物体が存在すると判定された、第1格子とは異なる第2格子が存在するか否かを判定する。そして、走査用の配列264内に、物体が存在すると判定された、第1格子とは異なる第2格子が存在する場合、占有格子図生成部208は、第1格子と第2格子とを直線で結ぶ領域に対して物体が存在すると判定することで、第1領域を直線的に膨張させる。
【0076】
図19は、線形膨張処理が行われた占有格子図226の一例を示す図である。格子266は、線形膨張処理によって膨張された領域の格子である。このように、占有格子図生成部208は、物体が存在すると判定された第1格子を中心とした第2範囲内(走査用の配列264の範囲内)に、物体が存在すると判定された、第1格子とは異なる第2格子が存在する場合、第1格子と第2格子とを直線で結ぶ領域に対して物体が存在すると判定することで、第1領域(物体が存在すると判定された格子を含む領域)を直線的に膨張させる。占有格子図生成部208は、線形膨張処理を、図17において物体が存在すると判定された複数の格子の各々に対して実行する。
【0077】
図20は、第1輪郭を生成するとともに、第1輪郭を平行に膨張させる処理を説明するための図である。占有格子図生成部208は、線形膨張処理によって膨張された第1領域の複数の頂点を検出する。第1領域の頂点を検出する処理は、第1実施形態の図7図9に示される処理と同じであってよい。また、占有格子図生成部208は、検出した第1領域の複数の頂点を凸包で接続することにより第1輪郭を生成する。図20の例では、輪郭268、270、および272が、占有格子図生成部208によって生成された第1輪郭である。
【0078】
次に、占有格子図生成部208は、第1輪郭に含まれる複数の直線の各々に対応する複数の平行線を生成し、複数の平行線を接続することで第1領域を膨張させる。これによって、輪郭268は輪郭274に膨張し、輪郭270は輪郭276に膨張し、輪郭272は輪郭278に膨張することとなる。
【0079】
なお、図21に示されるように、所定面積以下の微小な領域を平行線で膨張させようとすると、占有面積に対して大きく頂点が飛び出してしまう場合がある。このため、占有格子図生成部208は、微小な領域に対しては、重心からのユークリッド距離を使用して膨張させる重心膨張を行ってもよい。
【0080】
占有格子図生成部208は、膨張させた第1領域(輪郭274、276、および278に囲まれる領域)を凹包で接続することにより、第2輪郭を生成する。図20に示されるように、輪郭274と輪郭276とは隣接しているが、膨張させた第1領域を凹包で接続する処理が行われると、輪郭274と輪郭276とが一体化することとなる。
【0081】
図22は、第2実施形態における第2輪郭の一例を示す図である。膨張させた第1領域を凹包で接続する処理が行われると、図22に示されるように、輪郭280および輪郭282が第2輪郭として生成される。
【0082】
このように、占有格子図生成部208は、第1輪郭(輪郭268、270、272)よりも頂点数が少なく第1領域を包含する第2輪郭(輪郭280、282)を、物体の輪郭として生成する。経路生成部210は、占有格子図226における第2輪郭に囲まれない領域である第2領域A2において移動体100が進むべき経路を生成する。駆動制御部212は、経路生成部210によって生成された経路に沿って移動体100が移動するよう、駆動装置300を制御する。これによって、経路生成部210はより適切な経路を生成することができ、移動体100は目的地までよりスムーズに移動することができる。
【0083】
上記説明した実施形態は、以下のように表現することができる。
プログラムを記憶した記憶装置と、
ハードウェアプロセッサと、を備え、
前記ハードウェアプロセッサが前記記憶装置に記憶されたプログラムを実行することにより、
移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識し、
前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成し、
前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成し、
前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定し、
物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成し、
前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する、
制御装置。
【0084】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0085】
100 移動体
200 制御装置
206 認識部
208 占有格子図生成部
210 経路生成部
212 駆動制御部
214 第2制御部
220 記憶部
226 占有格子図
300 駆動装置
【要約】
【課題】移動体の現在地から目的地までの経路を適切に生成すること。
【解決手段】移動体の周辺の状況が撮像された画像に基づいて、前記移動体の周辺に存在する物体の位置を認識する認識部と、前記移動体の周辺に存在する物体の位置に基づいて、複数の格子を含む占有格子図を生成する占有格子図生成部と、前記占有格子図において示される物体の輪郭に基づいて、前記移動体が進むべき経路を生成する経路生成部と、を備え、前記占有格子図生成部は、前記移動体の周辺に存在する物体の位置に基づいて、前記占有格子図における複数の格子の各々に対して、物体が存在するか否かを判定し、物体が存在すると判定された格子を含む第1領域の輪郭を示す第1輪郭を生成し、前記第1輪郭よりも頂点数が少なく前記第1領域を包含する第2輪郭を、前記物体の輪郭として生成する、制御装置。
【選択図】図3
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22