(58)【調査した分野】(Int.Cl.,DB名)
前記測量部は、前記無人走行作業車が前記移動方向に移動している間に、前記第1角度が45degに近づくように前記第1地点を決定すると共に、前記第2角度が135degに近づくように前記第2地点を決定する、請求項1に記載の無人走行作業車。
前記測量部は、前記無人走行作業車が前記移動方向に移動している間に、前記無人走行作業車の現在位置から前記標識を指す方向と前記移動方向との角度差が、既に決定されている前記第1地点における第1角度よりも45degに近いときは前記既に決定されている前記第1地点の代わりに前記現在位置を前記第1地点として決定する一方で、前記無人走行作業車の現在位置から前記標識を指す方向と前記移動方向との角度差が、既に決定されている前記第1地点における第1角度よりも45degに近くないときは既に決定されている前記第1地点における前記第1角度を前記標識の前記位置情報の取得に用いる、請求項1又は2に記載の無人走行作業車。
前記測量部は、前記無人走行作業車が前記移動方向に移動している間に、前記無人走行作業車の現在位置から前記標識を指す方向と前記移動方向との角度差が、既に決定されている前記第2地点における第2角度よりも135degに近いときは既に決定されている前記第2地点の代わりに前記現在位置を前記第2地点として決定する一方で、前記無人走行作業車の現在位置から前記標識を指す方向と前記移動方向との角度差が、既に決定されている前記第2地点における第2角度よりも135degに近くないときは既に決定されている前記第2地点における前記第2角度を前記標識の前記位置情報の取得に用いる、請求項1から3のいずれか1項に記載の無人走行作業車。
【発明を実施するための形態】
【0018】
以下に説明する好ましい実施形態は、本発明を容易に理解するために用いられている。従って、当業者は、本発明が、以下に説明される実施形態によって不当に限定されないことを留意すべきである。
【0019】
《1.無人走行作業車の構成例》
図1及び
図2を参照して、無人走行作業車10の全体の構成の例を説明する。以下、無人走行作業車10を、作業車10とも呼ぶ。
図1には、作業車10の一例として、芝草を刈るように自主的に走行可能なロボット式芝刈機10が示されている。作業車10は、ハウジング11と、ハウジング11の前部に備えた左右の前輪12と、ハウジング11の後部に備えた左右の後輪13と、ハウジング11の中央の下部に備えた作業部14と、を含む。
図1に示される例においては、作業部14の一例として、ロボット式芝刈機10の芝刈ブレード14が示されている。
【0020】
作業車10は、左右の後輪13を個別に駆動する左右の走行用モータ15と、作業部14を駆動する作業部駆動用モータ16と、バッテリ17と、車輪速センサ18と、電子制御装置(ECU;Electronic Control Unit)31、角速度センサ32及び加速度センサ33を搭載する基板30と、をハウジング11内に備える。また、作業車10は、作業車10の外部を撮像可能なカメラ21をハウジング11上に有する。カメラ21は、例えば、CCD、CMOS等の撮像センサと、被写体の像を撮像センサの撮像面に形成する撮像レンズとを有し、デジタル形式の画像を生成することができる。
【0021】
走行用モータ15、作業部駆動用モータ16、車輪速センサ18、ECU31、角速度センサ32、加速度センサ33及びカメラ21は、バッテリ17から電力が供給される。例えば、走行用モータ15、作業部駆動用モータ16、車輪速センサ18、角速度センサ32、加速度センサ33及びカメラ21は、ECU31を経由してバッテリ17から電力が供給されてもよい。
【0022】
ECU31は、車輪速センサ18、角速度センサ32、加速度センサ33及びカメラ21から信号(又はデータ)を受け取り、走行用モータ15と作業部駆動用モータ16との動作を制御する。また、ECU31は、左右の走行用モータ15を個別に制御することによって、作業車10の移動を制御することができる。
【0023】
すなわち、
図2に示されているように、左の走行用モータ15は左の後輪13を、右の走行用モータ15は右の後輪13を、個別に駆動する。例えば、左右の走行用モータ15の双方が等速で正転することによって、作業車10は前方向に直進走行(前進)をする。同様に、左右の走行用モータ15の双方が等速で逆転することによって、作業車10は後方向に直進走行(後進)をする。
【0024】
また、左側の走行用モータ15と右側の走行用モータ15とが異なる速度で正転することによって、作業車10は左右の走行用モータ15の回転速度の遅い側の方向に、旋回する。さらに、左右の走行用モータ15の一方が正転すると共に他方が同じ回転速度で逆転することによって、作業車10は、作業車10の位置が変わることなく、左右の走行用モータ15の逆転している側の方向に旋回可能である。
【0025】
図3を参照して、基板30及び基板30に接続される装置等の構成の例を説明する。
図3に示されているように、基板30は、ECU31と、角速度センサ32と、加速度センサ33と、左右の走行用モータ15の回転を個別に制御するドライバ36と、作業部駆動用モータ16の回転を制御するドライバ37と、を備える。また、基板30は、カメラ21、バッテリ17及び車輪速センサ18と電気的に接続されている。
【0026】
角速度センサ32は、作業車10の図示されていない重心位置の鉛直軸回りの回転角速度であるヨーレートを表す信号をECU31に対して出力する。すなわち、ECU31は、角速度センサ32からヨーレートを表す信号を受け取ることによって、作業車10の正面方向(進行方向)を演算等して取得することができる。
【0027】
加速度センサ33は、作業車10の例えば前後方向、左右方向及び上下方向の3方向に作用する加速度を表す信号をECU31に対して出力する。加速度センサ33は、必ずしも3方向に作用する加速度を表す信号を出力する必要はなく、例えば上記3方向のうちの1方向又は2方向に作用する加速度を表す信号を出力してもよい。
【0028】
ドライバ36は、ECU31から受け取る信号に応じて、左右の走行用モータ15の回転を個別に制御する。ドライバ37は、ECU31から受け取る信号に応じて、作業部駆動用モータ16の回転を制御する。ここで、
図3に示される例においては、角速度センサ32、加速度センサ33、ドライバ36及びドライバ37は、ECU31とは別の構成要素として基板30上に備えられているが、例えば、これらの少なくとも1つ以上をECU31が備えてもよい。
【0029】
車輪速センサ18は、後輪13の回転速度を検出可能に作業車10に備えられており、後輪13の回転速度を表す信号を基板30、具体的にはECU31に対して出力する。すなわち、ECU31は、車輪速センサ18から後輪13の回転速度を表す信号を受け取ることによって、作業車10が移動した距離を演算等して取得することができる。
【0030】
カメラ21は、作業車10の外部を撮像可能に作業車10に備えられており、撮像した画像のデータを基板30、具体的にはECU31に対して出力する。ここで、
図3に示される例においては、1つのカメラ21が基板30と電気的に接続されているが、2以上のカメラ21が基板30に接続されていてもよい。
【0031】
また、作業車10の外部を周囲全体にわたって撮像可能に、適切な個数のカメラ21が作業車10の適切な位置に備えられていることが好ましい。例えば、作業車10のハウジング11の前側と後側と左側と右側とに1つずつ、合計4つのカメラ21が備えられることが好ましい。代替的に、例えば、作業車10の外部を周囲全体にわたって撮像可能な画角を有する1つのカメラ21が、作業車10のハウジング11の上位部に備えられてもよい。
【0032】
図4を参照して、ECU31の構成の例を説明する。ECU31は、例えば、CPU(Central Processing Unit)等の処理部40と、RAM(Random Access Memory)、ROM(Read Only Memory)等の記憶部50と、を含むマイクロコンピュータで構成される。記憶部50には、作業車10が作業を行う範囲である作業エリアに関するマップデータ(マップ)51が記憶されている。
【0033】
処理部40は、例えば、記憶部50に記憶されている図示されていないプログラムを実行することによって、移動方向決定部41、画像解析部43、挙動取得部44及び測量部45として機能する。代替的に、移動方向決定部41、画像解析部43、挙動取得部44及び測量部45の少なくとも1つは、例えばアナログ回路等のハードウェアで実現されてもよい。
【0034】
移動方向決定部41は、作業車10が移動する方向(移動方向)を決定する。画像解析部43は、カメラ21が作業車10の外部を撮像した画像を受け取り、例えば、公知の画像処理、パターンマッチング手法等を用いて画像を解析する。作業車10が複数のカメラ21を備えるときは、画像解析部43は、例えば、複数のカメラ21から受け取る作業車10の外部を撮像した画像を結合して得られる、作業車10の周囲全体にわたる画像を解析してもよい。画像解析部43は、受け取った画像に後述する標識が含まれているときには、標識を抽出する。そして、画像解析部43は、作業車10の正面方向(進行方向)と、作業車10の現在位置から抽出した標識を指す方向との角度差を演算等することによって取得する。
【0035】
挙動取得部44は、作業車10が移動した距離及び方向を含む挙動情報を取得する。挙動取得部44は、車輪速センサ18から受け取る信号に応じて作業車10が移動した距離を演算等して取得する。また、挙動取得部44は、角速度センサ32から受け取る信号に応じて作業車10が移動した方向を演算等して取得する。挙動取得部44は、例えば、加速度センサ33から受け取る信号に応じて演算等して取得した情報を、さらに挙動情報に含んでもよい。
【0036】
測量部45は、画像解析部43による解析結果及び挙動取得部44による挙動情報を用いて、画像解析部43が抽出した標識の位置情報を後述する三角測量法によって取得する。測量部45は、例えば、取得した標識の位置情報を、マップ51に反映させる。
【0037】
作業車10は、作業車10の動作モードとして、例えば、作業モードと測量モードとを有している。作業車10は、作業モードで動作するときは、作業エリア内を自主的に走行し、例えば芝草を刈る等の作業を行う。また、作業車10は、測量モードで動作するときは、自主的に走行している間に標識の位置情報を取得してマップ51を更新する。
【0038】
《2.無人走行作業車の動作の例》
《2−1.作業エリアと無人走行作業車の動作との関係》
図5を参照して、作業エリア70と作業車10の動作との関係について説明する。
図5には、作業エリア70を上から見た例が示されている。
図5に示されている例では、作業エリア70が破線で囲まれた範囲として示されている。また、
図5に示されている例では、作業車10を収容可能なステーション60が示されている。作業車10は、ステーション60に収容されることによってバッテリ17の充電が可能となる。また、作業車10は、作業モード又は測量モードでの動作を終えたときに、ステーション60まで移動して収容されてもよい。なお、
図5に示されている例においては、ステーション60は作業エリア70の内側と外側とをまたがっているような状態で配置されているが、ステーション60は、作業エリア70の内側に配置されていてもよく、作業エリア70の外側に配置されていてもよい。
【0039】
作業車10は、ECU31の記憶部50が記憶しているマップ51上に作業エリア70を設定(又は記憶)することができる。マップ51は、例えば、地面と同一平面を表す二次元マップであり、マップ51上の位置情報(二次元座標)と実空間上の位置情報(二次元座標)とは対応関係にある。実空間上の位置情報(二次元座標)は、例えば、地面と同一平面上の座標平面で表され、この座標平面は、ステーション60が配置されている位置又は予め設定された位置を原点としてX軸及びX軸と直角に交差するY軸の2つの座標軸で構成される。なお、
図5に示される例においては、原点、X軸及びY軸の図示が省略されており、X軸正方向及びY軸正方向の例が表されている。
【0040】
図5に示されている例では、長方形の作業エリア70が示されており、この長方形の4つの頂点には標識71(71−1,71−2,71−3,71−4)が存在している。すなわち、
図5に示されている例においては、マップ51上では、実空間上で4つの標識71(71−1,71−2,71−3,71−4)の位置に対応する4つの座標点によって規定される長方形の内側の範囲が作業エリア70として設定されている。
【0041】
作業車10は、上述したように、ECU31の挙動取得部44によって、作業車10が移動した距離及び作業車10が移動した方向を含む挙動情報を取得することができる。そのため、作業車10は、マップ51上において、作業車10の現在位置を把握することができる。
【0042】
このように、作業車10は、マップ51上に作業エリア70を設定した後は、作業エリア70の内側のみを走行することができる。その結果、作業車10は、例えば、作業モードで動作するときに、作業エリア70の内側のみを自主的に走行し、芝草を刈る等の作業を行うことが実現できる。
【0043】
マップ51上で作業エリア70を設定するためには、実空間上の作業エリア70の内側と外側との境界に関する位置情報(二次元座標)を把握する必要がある。作業車10では、測量部45が、実空間上の作業エリア70の内側と外側との境界に関する位置情報として、実空間上の標識71の位置情報(二次元座標)を三角測量法によって取得する。なお、ユーザーはマップ51を編集可能であり、例えば、マップ51上に反映された標識71の位置情報から任意の距離だけ離れた位置を作業エリア70の内側と外側との境界に設定してもよい。
【0044】
また、標識71は、画像解析部43がカメラ21から受け取った画像から抽出可能な物であり、例えば地面に自立可能な棒状の物であってもよい。また、画像解析部43がカメラ21から受け取った画像から抽出可能である限り、木、石等が標識71として使用されてもよい。さらに、標識71は、例えば、カメラ21が撮像対象とする特定の周波数領域の光を発光可能に構成されていてもよい。
【0045】
《2−2.三角測量法による標識の位置情報の取得》
図6を参照して、測量部45が三角測量法を用いて、標識71の位置情報(二次元座標)を取得する方法の一例を説明する。
図6には、一定方向に移動する作業車10と、標識71とを上から見た例が示されている。
【0046】
作業車10が一定方向に移動するときに通る、位置10−Aと位置10−Bとの距離をLとする。位置10−Aと標識71の位置とを結ぶ直線の距離をHAとする。位置10−Aと標識71の位置とを結ぶ直線と、作業車10が移動した方向と、がなす角をθAとする。位置10−Bと標識71の位置とを結ぶ直線と、作業車10が移動した方向と、がなす角をθBとする。位置10−Aと標識71の位置とを通る直線と、位置10−Bと標識71の位置とを通る直線と、がなす角をθαとする。このとき、正弦定理から次の式(1)が得られる。
HA/sin(π−θB)=L/sinθα
HA/sinθB=L/sin(θB−θA) (1)
(∵ sin(π−θB)=sinθB, θα=θB−θA)
【0047】
また、式(1)を変形することによって、次の式(2)が得られる。
HA=L・sinθB/sin(θB−θA) (2)
【0048】
このように、LとθAとθBとを得ることによって、式(2)を演算してHAを決定することができる。ここで、測量部45は、作業車10が位置10−Aから位置10−Bまで一定方向に移動することによって、LとθAとθBとを得ることができる。すなわち、Lは挙動取得部44が取得し、θAとθBとは画像解析部43が取得する。したがって、測量部45は、標識71が、位置10−Aにおいて作業車10の正面方向(進行方向)との角度差がθAの方向であって、位置10−AからHAだけ離れた位置に配置されていることを取得することができる。以上のように、測量部45は、三角測量法を用いて、標識71の位置情報(二次元座標)を取得する。
【0049】
以下、測量部45が三角測量法を用いて標識71の位置情報を取得するときに、作業車10が一定の移動方向に移動する間に通る2つの位置(
図6において位置10−A及び位置10−Bに相当)のうち、一方を第1地点(
図6において位置10−Aに相当)とも呼び、他方を第2地点(
図6において位置10−Bに相当)とも呼ぶ。また、第1地点から標識71を指す方向と移動方向との角度差を第1角度(
図6において角度θAに相当)とも呼び、第2地点から標識71を指す方向と移動方向との角度差を第2角度(
図6において角度θBに相当)とも呼ぶ。
【0050】
《2−3.測量モードにおける無人走行作業車の動作の例》
図7及び
図8を参照して、測量モードにおける作業車10の動作の例を説明する。
図7には、作業車10と4つの標識71(71−1,71−2,71−3,71−4)とを上から見た例が示されている。
図7に示される例おいて、作業車10は位置10−1で測量モードの実行を開始したとする。
【0051】
測量モードの実行を開始した作業車10は、位置10−1で作業車10の外部をカメラ21によって撮像する。画像解析部43は、カメラ21が撮像した画像を受け取って解析する。画像解析部43は、解析した画像に標識71−1が含まれているときに、標識71−1を抽出する。測量部45は、画像解析部43が抽出した標識71−1の位置情報の取得を開始する。
【0052】
移動方向決定部41は、測量部45が位置情報の取得を開始する標識71−1について、位置情報を取得するために作業車10が移動する移動方向を決定する。すなわち、移動方向決定部41は、作業車10が標識71(標識71−1)と接触しない方向であって、且つ、作業車10の現在位置(位置10−1)から標識71(標識71−1)を指す方向との角度差θg(θg1)が90degよりも小さくなる方向を、作業車10の移動方向として決定する。
【0053】
移動方向決定部41によって作業車10の移動方向が決定されると、作業車10は正面方向(進行方向)と移動方向決定部41が決定した移動方向とが一致するまで旋回する。正面方向(進行方向)と移動方向決定部41が決定した移動方向とが一致した後に、作業車10が正面方向(進行方向)に移動(前進)する。作業車10が移動している間に、測量部45が上述した三角測量法によって標識71(標識71−1)の位置情報を取得する。
【0054】
以上のように、測量部45が標識71の位置情報の取得を開始するときに、移動方向決定部41が作業車10の移動方向を決定することによって、ユーザーが標識71の位置情報を自身で取得すること及び作業車10の移動方向を案内することなく、標識71の位置情報を取得することができる。また、移動方向決定部41が決定する移動方向が、作業車10が標識71と接触しない方向であって、且つ、作業車10の現在位置から標識71を指す方向との角度差θgが90degよりも小さくなる方向であることによって、作業車10が決定された移動方向に移動している間に、作業車10と標識71との距離が近づくタイミングが発生する。すなわち、作業車10と標識71との距離が近づくタイミングが発生しない、作業車10の現在位置から標識71を指す方向との角度差θgが90deg以上となる方向に作業車10が移動する場合と比較して、標識71との距離が近いときに撮像された画像に基づいて標識71の位置情報を取得することができる。
【0055】
移動方向決定部41が決定する移動方向は、作業車10が標識71と接触しない方向であって、且つ、作業車10の現在位置から標識71を指す方向との角度差θgが45degよりも小さくなる方向であることが好ましい。この場合、作業車10が決定された移動方向に移動している間に、作業車10と標識71との距離が近づくタイミングが十分に発生する。
【0056】
また、測量部45は、画像解析部43が抽出した標識71(71−1)の位置情報の取得が完了しているか否かを判定してもよい。そして、標識71(71−1)の位置情報の取得が完了していないと判定したときに、測量部45は標識71(71−1)の位置情報の取得を開始してもよい。例えば、測量部45は、マップ51を参照して、位置情報が記憶されている標識71を、位置情報の取得が完了した標識71と判定してもよい。代替的に、測量部45は、位置情報の取得が所定の回数実行された標識71を、位置情報の取得が完了した標識71と判定してもよい。
【0057】
測量部45が、位置情報の取得が完了していない標識71の位置情報の取得を開始することによって、すでに位置情報の取得が完了している標識71について、再度位置情報の取得を実行されることを防ぐことができる。その結果、例えば、測量モードにおける動作にかかるバッテリ17の電力消費を軽減することができる。
【0058】
また、画像解析部43は、受け取った画像に複数の標識71が含まれているときには、これら全ての標識71を抽出する。測量部45は、画像解析部43が抽出した複数の標識71のなかに位置情報の取得が完了していない標識71が含まれているか判定する。位置情報の取得が完了していない標識71が含まれているときは、測量部45は、位置情報の取得が完了していない標識71のうち作業車10の現在位置からの視認性の最も良い標識71の位置情報の取得を開始する。作業車10の現在位置からの視認性の最も良い標識71とは、例えば、受け取った画像上での大きさが最も大きい標識71であってもよい。例えば、標識71の位置情報の取得が完了した位置でカメラ21が撮像する画像に、位置情報の取得が完了していない標識71が含まれなくなるまで、同様の手順が繰り返される。
【0059】
具体的に、
図7に示される例において、作業車10が位置10−1のときにカメラ21が撮像する画像に位置情報の取得が完了していない4つの標識71(71−1,71−2,71−3,71−4)が含まれたとする。このとき、画像解析部43は受け取った画像に含まれる4つの標識71(71−1,71−2,71−3,71−4)を抽出し、測量部45は4つの標識71(71−1,71−2,71−3,71−4)の位置情報の取得が完了していないと判定する。測量部45は、位置情報の取得が完了していない4つの標識71(71−1,71−2,71−3,71−4)のうち作業車10の現在位置(位置10−1)からの視認性の最も良い標識71−1の位置情報の取得を開始する。そして、移動方向決定部41によって作業車10の移動方向が決定され、決定された移動方向に作業車10が移動している間に測量部45が標識71−1の位置情報を取得する。
【0060】
その後、標識71−1の位置情報の取得が完了した位置(例えば位置10−2)でカメラ21が撮像する画像に、4つの標識71(71−1,71−2,71−3,71−4)が含まれたとする。このとき、画像解析部43は受け取った画像に含まれる4つの標識71(71−1,71−2,71−3,71−4)を抽出し、測量部45は3つの標識71(71−2,71−3,71−4)の位置情報の取得が完了していないと判定する。測量部45は、位置情報の取得が完了していない3つの標識71(71−2,71−3,71−4)のうち作業車10の現在位置(位置10−2)からの視認性の最も良い標識71−2の位置情報の取得を開始する。
【0061】
標識71−2の位置情報の取得が完了した位置(例えば位置10−3)において同様の手順によって標識71−3の位置情報の取得が開始され、さらに標識71−3の位置情報の取得が完了した位置(例えば位置10−4)において同様の手順によって標識71−4の位置情報の取得が開始される。ここで、いずれの標識71の位置情報の取得が開始されるときも、移動方向決定部41が決定する移動方向は、作業車10が標識71と接触しない方向であって、且つ、作業車10の現在位置から標識71を指す方向との角度差θg(θg1,θg2,θg3,θg4)が90degよりも小さくなる方向である。
【0062】
標識71−4の位置情報の取得が完了した位置(図示されていない)でカメラ21が撮像する画像に、位置情報の取得が完了していない標識71が含まれていない(全ての標識71の位置情報の取得が完了した)と測量部45が判定すると、作業車10は測量モードでの動作を終了してもよい。しかしながら、代替的に、例えば、全ての標識71の位置情報の取得が3回完了されたときに、作業車10が測量モードでの動作を終了してもよい。
【0063】
このように、カメラ21が撮像した画像に複数の標識71が含まれるときに、測量部45が位置情報の取得する標識71を決定することによって、ユーザーが位置情報の取得する標識71を決定する必要がない。また、測量部45は、位置情報の取得が完了していない標識71のなかから作業車10の現在位置からの視認性の最も良い標識71の位置情報の取得を開始することによって、例えば現在位置からの距離が最も遠い標識71の位置情報の取得を開始する場合と比較して、全ての標識71の位置情報の取得が完了するまでに必要とする移動距離が短くなる。その結果、測量モードにおける動作にかかるバッテリ17の電力消費を軽減することができる。
【0064】
図8に示されるフローチャートを参照して、測量モードにおける作業車10の動作の一連の流れの例を説明する。ステップS101では、作業車10のカメラ21が作業車10の外部を撮像する。ステップS102では、画像解析部43が、カメラ21が撮像した画像を分析し、画像に含まれる標識71を抽出する。ステップS103では、測量部45が、画像解析部43が抽出した標識71のなかに位置情報の取得が完了していない標識71が含まれているか否かを判定する。
【0065】
ステップS103の判定がYESのときにフローはステップS104に進み、ステップS103の判定がNOのときにフローは終了する。ステップS104では、測量部45が位置情報を取得する標識71を決定し、移動方向決定部41が作業車10の移動方向を決定する。ステップS105では、作業車10は移動方向決定部41が決定した移動方向に移動を開始し、作業車10がこの移動方向に移動している間に測量部45が標識71の位置情報を上述した三角測量法によって取得する。
【0066】
ステップS106では、測量部45は、取得した標識71の位置情報をマップ51に反映させて、マップ51を更新する。マップ51の更新が終了すると、フローは再度ステップS101に進む。すなわち、ステップS103のステップで、画像解析部43が抽出した標識71のなかに位置情報の取得が完了していない標識71が含まれていないと判定されるまで、ステップS101からステップS106の処理が繰り返される。
【0067】
《2−4.位置情報の取得の精度》
図9、
図10及び
図11を参照して、測量部45による標識71の位置情報の取得の精度について説明する。
図9には、作業車10と標識71とを上から見た例が示されている。また、
図9に示される例においては、作業車10と標識71とは距離Hだけ離れている。
【0068】
ここで、一般的にデジタル形式の画像を生成可能なカメラでは、被写体の像を撮像センサの撮像面に形成するときに、撮像センサの分解能、撮像レンズの焦点距離等に起因した誤差が生じる。この誤差が影響して、カメラ21が撮像するときに所定の角度の撮像誤差±θp(撮像誤差の範囲は2θp)が生じる。撮像誤差±θpが生じることによって、作業車10から距離Hだけ離れる標識71は、実空間上の2Htanθpの範囲の誤差を含んだ状態で撮像される。すなわち、カメラ21と標識71との距離が遠くなることに応じて撮像誤差の影響が大きくなる。
【0069】
図10及び
図11を参照して、三角測量法による標識71の位置情報の取得における撮像誤差の影響を説明する。
図10の(A)及び(B)に示される領域76は、三角測量法を用いて標識71の位置情報が取得される誤差の範囲を表す。領域76は、第1地点の例である位置Aで標識71を撮像するときの撮像誤差と、第2地点の例である位置Bで標識71を撮像するときの撮像誤差と、が重なって形成される領域である。
【0070】
図10に示される(A)の例と(B)の例と間で、位置A(第1地点)と標識71との距離及び位置B(第2地点)と標識71との距離は概ね同じである。しかしながら、位置A(第1地点)、標識71、位置B(第2地点)からなる角度が
図10の(A)に示される例よりも90[deg]に近い
図10の(B)の方が、領域76が小さくなっている。なお、位置A(第1地点)、標識71、位置B(第2地点)からなる角度は、第1角度と第2角度との角度差と同じである。
【0071】
このように、撮像誤差を考慮すると、三角測量法に用いる第1角度と第2角度との角度差が90[deg]に近い程、標識71の位置情報の取得の精度が向上する。すなわち、測量部45は、作業車10が移動方向に移動している間に、第1角度と第2角度との角度差が90[deg]に近づくように、第1地点及び/又は第2地点を決定することによって、撮像誤差を軽減することができる。その結果、ユーザーが、標識71の位置情報の取得の精度を担保するために、第1地点及び第2地点を決定する必要がない。
【0072】
また、
図11には、第1角度と第2角度との角度差が略90[deg]であるときの三角測量法を用いた標識71の位置情報の取得の精度を表す2つの例として、
図11の(A)及び(B)が示されている。
図11の(A)の領域76と(B)の領域76とでは、
図11の(A)の方が大きくなっている。これは、
図11の(A)における位置A(第1地点)と標識71との距離が
図11の(B)のにおける位置A(第1地点)と標識71との距離よりも長くなっていることにより、撮像誤差が大きく影響しているためである。
【0073】
第1角度と第2角度との角度差が略90[deg]であるときに、第1地点と標識71との距離及び第2地点と標識71との距離の双方が最も短くなる条件は、
図11の(B)に示されるように第1角度θAが略45[deg]及び第2角度θBが略135[deg]が成立するときである。すなわち、測量部45は、作業車10が移動方向に移動している間に、第1角度が45[deg]に近づくように第1地点を決定すると共に、第2角度が135[deg]に近づくように第2地点を決定することによって、標識71の位置情報の取得の精度が向上する。
【0074】
ここで、標識71の位置情報の取得の精度の観点からも、測量部45が標識71の位置情報の取得を開始するときに移動方向決定部41が決定する移動方向は、作業車10が標識71と接触しない方向であって、且つ、作業車10の現在位置から標識71を指す方向との角度差θgが45degよりも小さくなる方向であることが好ましい。すなわち、作業車10の移動方向が作業車10の現在位置から標識71を指す方向との角度差θgが45degよりも小さくなる方向であるときには、作業車10が移動している間に、第1角度が45[deg]となる第1地点を必ず通る。
【0075】
《2−5.標識の位置情報の取得に係る処理》
図12に示されるフローチャートを参照して、測量部45が標識71の位置情報の取得するときの詳細の処理の例を説明する。
図12に示されるフローチャートは、
図8に示されるフローチャートにおけるステップS105の詳細な処理の例である。
【0076】
ステップS201では、測量部45は、標識71検出フラグがONであるか否かを判定する。ステップS201の判定がYESのときにフローはステップS205に進み、ステップS201の判定がNOのときにフローはステップS202に進む。なお、
図8に示されるフローチャートにおけるステップS104からステップS105に進んだ直後は、標識71検出フラグはOFFである。
【0077】
ステップS202では、測量部45は、現在位置でカメラ21が撮像した画像に標識71が含まれているか否かを判定する。ステップS202の判定がYESのときにフローはステップS203に進み、ステップS202の判定がNOのときにフローはSTARTに戻る。
【0078】
ステップS203では、測量部45は、ステップS202で判定した画像を撮像した位置における作業車10の移動方向と作業車10から標識71を指す方向との角度差を、第1角度として記憶する。以下、画像を撮像した位置における作業車10の移動方向と作業車10から標識71を指す方向との角度差を、標識71検出角度とも呼ぶ。測量部45は、例えば、標識71検出角度を画像解析部43から受け取る。また、ステップS203では、測量部45は、ステップS202で判定した画像を撮像した位置を第1地点として記憶する。以下、画像を撮像した位置を、標識71検出位置とも呼ぶ。測量部45は、例えば、標識71検出位置を挙動取得部44から受け取る。
【0079】
ステップS204では、測量部45は、標識71検出フラグをONにする。ステップS204の処理が終了すると、フローはSTARTへ戻る。ステップS205では、測量部45は、第1角度が確定されているか否かを判定する。ステップS205の判定がYESのときにフローはステップS211に進み、ステップS205の判定がNOのときにフローはステップS206に進む。
【0080】
ステップS206では、現在位置でカメラ21が撮像した画像に標識71が含まれているか否かを判定する。ステップS206の判定がYESのときにフローはステップS207に進み、ステップS206の判定がNOのときにフローは終了する。なお、ステップS206の判定がNOでフローは終了するときは、検出できていた標識71が何かしらの原因で検出できない(画像解析部43が標識71を抽出できない)状況が発生しているため、例えば、
図8のフローチャートのステップS101に戻る。
【0081】
ステップS207では、ステップS206で判定した画像を撮像した位置における標識71検出角度が、第1角度よりも45[deg]に近いか否かを判定する。ステップS207の判定がYESのときにフローはステップS208に進み、ステップS207の判定がNOのときにフローはステップS209に進む。
【0082】
ステップS208では、測量部45は、現在記憶されている第1角度に代えて、ステップS206で判定した画像を撮像した位置における標識71検出角度を新たに第1角度として記憶(上書き)する。また、ステップS208では、測量部45は、現在記憶されている第1地点に代えて、ステップS206で判定した画像を撮像した位置を新たに第1地点として記憶(上書き)する。
【0083】
ステップS209では、測量部45は、現在記憶されている第1角度及び現在記憶されている第1地点を、三角測量法に用いる第1角度及び第1地点として確定する。ステップS210では、測量部45は、ステップS206で判定した画像を撮像した位置における標識71検出角度を第2角度として記憶し、画像を撮像した位置を第2地点として記憶する。ステップS208又はステップS210の処理が終了すると、フローはSTARTへ戻る。
【0084】
測量部45は、ステップS207、ステップS208、ステップS209の処理を有することによって、作業車10が移動方向に移動している間に、第1角度が45[deg]に近づくように第1地点を決定することができる。その結果、標識71の位置情報の取得の精度が向上する。
【0085】
ステップS211では、現在位置でカメラ21が撮像した画像に標識71が含まれているか否かを判定する。ステップS211の判定がYESのときにフローはステップS212に進み、ステップS211の判定がNOのときにフローはステップS214に進む。
【0086】
ステップS212では、ステップS211で判定した画像を撮像した位置における標識71検出角度と確定された第1角度との角度差が、現在記憶されている第2角度と確定された第1角度との角度差よりも、90[deg]に近いか否かを判定する。ステップS212の判定がYESのときにフローはステップS213に進み、ステップS212の判定がNOのときにフローはステップS214に進む。
【0087】
ステップS213では、測量部45は、現在記憶されている第2角度に代えて、ステップS211で判定した画像を撮像した位置における標識71検出角度を新たに第2角度として記憶する。また、ステップS213では、測量部45は、現在記憶されている第2地点に代えて、ステップS211で判定した画像を撮像した位置を新たに第2地点として記憶する。ステップS213の処理が終了すると、フローはSTARTへ戻る。
【0088】
ステップS214では、測量部45は、現在記憶されている第2角度及び現在記憶されている第2地点を、三角測量法に用いる第2角度及び第2地点として確定する。ステップS215では、測量部45は、確定された第1角度、確定された第2角度、確定された第1地点と確定された第2地点との距離を用いて、三角測量法によって標識71の位置情報を演算して取得する。ステップS215の処理が終了すると、フローは終了する。すなわち、ステップS215の処理が終了すると、
図8に示されるフローチャートのステップS106に進む。
【0089】
測量部45は、ステップS212、ステップS213、ステップS214の処理を有することによって、作業車10が移動方向に移動している間に、第2角度が135[deg]に近づくように第2地点を決定することができる。その結果、標識71の位置情報の取得の精度が向上する。
【0090】
図12に示されているフローチャートは一例であって、測量部45は、全てのステップの処理を実行する必要はない。測量部45は、例えば、第1地点を確定するための処理、すなわち、
図12に示されているフローチャートのステップS201からステップS209までに相当する処理を、実行してもよい。また、測量部45は、例えば、第2地点を確定するための処理、すなわち、
図12に示されているフローチャートのステップS211からステップS215までに相当する処理を、実行してもよい。
【0091】
《2−6.特別な場合における動作》
図13及び
図14を参照して、特別な場合の例として、作業車10が移動している間に、画像解析部43が、カメラ21が撮像する画像から抽出できていた標識71を、カメラ21が撮像する画像から抽出できない状況が発生したときの動作の例を説明する。以下、この「画像解析部43が、カメラ21が撮像する画像から抽出できていた標識71を、カメラ21が撮像する画像から抽出できない状況」を、ロストとも呼ぶ。ロストは、例えば、位置が固定されている木、岩等又は位置が固定されていない人、動物等が障害物78となってカメラ21と標識71との間を遮るときに発生し得る。また、ロストは、例えば、逆光等によっても発生し得る。
【0092】
図13には、一定の移動方向に移動する作業車10と標識71とを上から見た例が示されている。また、
図13には、障害物78が示されている。
図13に示されているように、位置10−A、位置10−B、位置10−E及び位置10−Fからは、障害物78と干渉することなく、作業車10と標識71とを直線でつなぐことができる。その一方で、
図13に示されているように、位置10−C及び10−Dからは、障害物78と干渉することなく、作業車10と標識71とを直線でつなぐことができない。
【0093】
すなわち、例えば作業車10がカメラ21で外部を撮像しながら
図13に示される移動方向に移動する間に、位置10−A及び位置10−Bにおいて撮像する画像から画像解析部43が抽出していた標識71を、位置10−Cにおいて撮像する画像から画像解析部43が抽出できなくなる状況(ロスト)が発生する。その後、位置10−Eまで作業車10が移動したときに、撮像する画像から画像解析部43が再度標識71を抽出可能になり、ロストが解消される。
【0094】
例えば、何かしらの対策もなされないとすると、画像解析部43は、ロスト発生前に抽出した標識71と、ロスト解消後に抽出する標識71とを異なる標識71として認識することが想定される。例えば、測量部45が標識71の位置情報を取得するために作業車10が移動している間に、このようなロストが発生したとすると、測量部45が標識71の位置情報を精度良く取得できないこと又は標識71の位置情報を取得することができないことが想定される。すなわち、測量部45が標識71の位置情報を取得するための情報は、作業車10が位置10−Cに到達するまで(ロスト発生前)に得た情報(標識71検出角度及び標識71検出位置)又は、作業車10が位置10−Eに到達した後(ロスト解消後)に得た情報(標識71検出角度及び標識71検出位置)のいずれか一方に限られることが想定される。
【0095】
例えば、
図12に示されるフローチャートに従うと、ステップS211の判定でNO又はステップS206の判定でNOとなる。例えばステップS211の判定でNOとなるときは、作業車10が位置10−Cまで移動する間に記憶された第2角度及び第2地点が三角測量法に用いる第2角度及び第2地点として確定され(ステップS214)、すでに確定している第1角度及び第1地点とともに三角測量法によって標識71の位置情報が取得される(ステップS215)。この場合には、標識71の位置情報を精度良く取得できない可能性がある。また、例えばステップS206の判定でNOとなるときは、標識71の位置情報が取得されることなくフローが終了する。
【0096】
ここで、
図13に示されている例では、位置10−Eまで作業車10が移動したときに、撮像する画像から画像解析部43が再度標識71を抽出可能になるため、画像解析部43は、ロスト発生前に抽出していた標識71とロスト解消後に抽出する標識71とが同一の標識71であるか否かを判定してもよい。画像解析部43がロスト発生前に抽出していた標識71とロスト解消後に抽出する標識71とが同一の標識71であるときは、測量部45は、ロスト発生前に得た情報(標識71検出角度及び標識71検出位置)と、ロスト解消後に得た情報(標識71検出角度及び標識71検出位置)との双方を用いて標識71の位置情報を取得してもよい。
【0097】
そうすると、測量部45が、例えば、ロスト発生前に得た情報又は、ロスト解消後に得た情報の一方のみを用いて標識71の位置情報を取得する場合と比較して、標識71の位置情報を精度良く取得することができる。また、例えば、ユーザーが、作業車10が移動する間に障害物78の影響がない位置まで作業車10を案内する必要がない。
【0098】
図14を参照して、ロストが発生した後に解消したときに、画像解析部43が、ロスト解消後に抽出する標識71と、ロスト発生前に抽出していた標識71とが同一の標識71であるか否かを判定する方法の例を説明する。
【0099】
図14の(A)は、ロスト発生前にカメラ21が撮像した画像の例として、
図13の例の位置10−Bで撮像された画像80Bを示す。
図14の(B)は、ロスト解消後にカメラ21が撮像した画像の例として、
図13の例の位置10−Eで撮像された画像89Eを示す。
図14の(C)は、画像解析部43が画像80Bのなかから標識71以外を取り除く画像処理を施した画像の例として、加工画像80Biを示す。
図14の(D)は、画像解析部43が画像80Eのなかから標識71以外を取り除く画像処理を施した画像の例として、加工画像80Eiを示す。なお、
図14では、障害物78の図示を省略している。
【0100】
1つの方法の例として、画像解析部43は、画像80B上における標識71の近傍の風景の形状特徴と、画像80E上における標識71の近傍の風景の形状特徴とを比較してもよい。画像解析部43は、この比較結果に応じて、画像80Bに含まれる標識71と画像80Eに含まれる標識71とが同一の標識71であるか否かを判定してもよい。この方法の例によると、標識71の近傍の風景の形状特徴を判定に用いることができる。例えば、標識71の近傍の風景に特徴的なもの(例えば木等)が含まれている場合等に効果がある。また、例えば、ロスト解消後に撮像された画像に複数の同一形状の標識71が含まれている場合等、標識71の形状特徴のみで同一性を判定することが困難な場合にも判定の精度を担保する効果がある。
【0101】
他の方法の例として、画像解析部43は、
図13の例の位置10−Bと
図13の例の位置10−Eとの距離を用いて、画像80Bに含まれる標識71が画像80Eにおいて含まれる位置を予測して、予測された画像80E上での標識71の位置と、実際の画像80E上での標識71の位置とを比較してもよい。画像解析部43は、この比較結果に応じて、画像80Bに含まれる標識71と画像80Eに含まれる標識71とが同一の標識71であるか否かを判定してもよい。この方法の例によると、作業車10が移動した距離を判定に用いることができる。例えば、例えば、ロスト解消後に撮像された画像に複数の同一形状の標識71が含まれている場合等、標識71の形状特徴のみで同一性を判定することが困難な場合にも判定の精度を担保する効果がある。
【0102】
また、他の方法の例として、加工画像80Bi上における標識71の形状特徴と、加工画像80Ei上における標識71の形状特徴とを比較してもよい。画像解析部43は、この比較結果に応じて、画像80Bに含まれる標識71と画像80Eに含まれる標識71とが同一の標識71であるか否かを判定してもよい。この方法の例によると、標識71の形状特徴を判定に用いることができる。例えば、標識71の形状が特徴的な形状を有している場合等に特に効果がある。
【0103】
また、さらなる他の方法の例として、画像解析部43は、
図13の例の位置10−Bと
図13の例の位置10−Eとの距離を用いて、加工画像80Biに含まれる標識71が加工画像80Eiにおいて含まれる位置を予測して、予測された加工画像80Ei上での標識71の位置と、実際の加工画像80Ei上での標識71の位置とを比較してもよい。画像解析部43は、この比較結果に応じて、画像80Bに含まれる標識71と画像80Eに含まれる標識71とが同一の標識71であるか否かを判定してもよい。この方法の例によると、作業車10が移動した距離を判定に用いることができる。例えば、例えば、ロスト解消後に撮像された画像に複数の同一形状の標識71が含まれている場合等、標識71の形状特徴のみで同一性を判定することが困難な場合にも判定の精度を担保する効果がある。
【0104】
ロストが発生した後に解消したときに、画像解析部43が、ロスト解消後に抽出する標識71と、ロスト発生前に抽出していた標識71とが同一の標識71であるか否かを判定する方法の例をいくつか挙げた。画像解析部43は、これらの方法の1つを単独で実行した結果を用いて判定してもよいし、これらの方法の2つ以上の方法を実行した結果を用いて総合的に判定してもよい。また、画像解析部43は、ここで挙げられていない他の方法を併せて実行して、その結果も考慮して総合的に判定してもよい。
【0105】
ここまで説明した作業車10の動作は、全てが実施される必要はない。すなわち、作業車10は、ここまで説明した動作の例のうちの一部を実施してもよい。
【0106】
本発明は、上述の例示的な実施形態に限定されず、また、当業者は、上述の例示的な実施形態を特許請求の範囲に含まれる範囲まで、容易に変更することができるであろう。