(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下では、この発明の実施形態を、添付図面を参照して詳細に説明する。
図1は、この発明の一実施形態に係る作業車両の概略構成を示す側面図である。
図2は、
図1の作業車両の概略構成を示す正面図である。
作業車両1は、この実施形態では、薬液散布用の作業車両である。作業車両1は、走行装置2と、走行装置2上に支持された機体フレーム3と、機体フレーム3上に設けられた薬液散布装置4とを含む。この実施形態では、走行装置2は、クローラ式であり、左右の走行装置2L,2Rとを含む。走行装置2は、ホイル式であってもよい。なお、以下において、ホイル式の走行装置を有する車両の略図を、作業車両1の略図として用いる場合がある。
【0017】
機体フレーム3の後部に駆動源としてのエンジン5が配置されている。機体フレーム3の前部には、支持枠6が設けられている。支持枠6は、機体フレーム3に支持された左右一対のマスト6A,6Bと、これらのマスト6A,6Bの上端どうしを連結する第1連結部材6Cと、これらのマスト6A,6Bの長さ中間部どうしを連結する第2連結部材6Dとを含む。
【0018】
薬液散布装置4は、薬液タンク7と、ノズルユニット8と、ポンプユニット9とを含む。薬液タンク7は、機体フレーム3上の前後中央部に配置されている。薬液タンク7には薬液が収容される。薬液は、作物または土壌に散布される液体であればよく、農薬、水等を含む。ノズルユニット8は、支持枠6における上端寄りの位置に取り付けられている。ノズルユニット8は、左右方向に延びた中空体状であり、両端に薬液を噴出させるためのノズル8a,8bを有している。ノズルユニット8には、薬液流入口(図示略)が形成されている。
【0019】
ポンプユニット9は、
図1および
図2に図示していないが、この実施形態では、エンジン5の動力によって回転駆動されるポンプ9A(
図4参照)と、エンジン5の回転力をポンプ9Aに伝達したり遮断したりするクラッチ機構9B(
図4参照)等を含む。ポンプ9Aの吸込口は、ホース10を介して薬液タンク7に接続されている。また、ポンプ9Aの吐出口は、ホース11を介してノズルユニット8の薬液流入口に接続されている。ポンプ9Aが回転駆動されると、薬液タンク7内の薬液がポンプ9Aを介してノズルユニット8に供給され、ノズル8a,8bから薬液が噴出される。
【0020】
作業車両1には、物体までの距離を測定するための距離センサ13および作業車両1の方位(姿勢)を検出するための方位センサ(姿勢センサ)14(
図4参照)が搭載されている。距離センサ13は、作業車両1の前部の幅中央位置に配置されている。
距離センサ13としては、レーザ光を利用して物体までの距離を測定するセンサが用いられる。この実施形態では、距離センサ13としては、例えば、レーザ光をパルス状に照射して物体に反射されて帰ってくるまでの時間から距離を測定するLIDAR(Light Detection and Ranging, Laser Imaging Detection and Ranging)が用いられている。特に、この実施形態では、距離センサ13としては、レーザ光を可動ミラーによって方向を変えてスキャンすることで、物体の方位も検出できるスキャンLIDARが用いられている。
【0021】
方位センサ(姿勢センサ)14としては、ジャイロセンサ、地磁気センサ、IMU(Inertial Measurement Unit)等を用いることができる。
図1および
図2には図示されていないが、作業車両1には、エンジン5の駆動力を左右の走行装置2L,2Rに伝達して、左右の走行装置2L,2Rを独立して駆動制御するクローラ制御機構15(
図4参照)が設けられている。クローラ制御機構15は、左右の走行装置2L,2Rを独立して駆動させることにより、作業車両1に前進、後進、旋回等を行わせるための機構である。具体的には、クローラ制御機構15によって、左右の走行装置2L,2Rが同一方向に同一速度で回転駆動されると、作業車両1は前進または後進する。一方、クローラ制御機構15によって、左右の走行装置2L,2Rが同一方向に異なる速度で回転駆動されるか、左右の走行装置2L,2Rが互いに逆方向に回転駆動されると、作業車両1は旋回する。
【0022】
この実施形態では、作業車両1は、
図3に示すように、作物Sが列状に植えられている圃場Hを自動走行しながら、作物Sに薬液を散布する。この実施形態では、作物Sは果樹であり、圃場Hは果樹園である。この明細書では、作物Sの列を作物列Lということにする。
図3の例では、縦方向に並んだ作物Sの列が作物列Lであり、圃場H内には5つの作物列L1〜L5が横方向に間隔をおいて植え付けられている。各作物列L1〜L5には、複数の作物Sがほぼ等間隔で並んで配置されている。これらの作物列L1〜L5を左から順に、第1作物列L1、第2作物列L2、第3作物列L3、第4作物列L4および第5作物列L5ということにする。また、隣り合う作物列間の空間のうち
図3の下側の端部を手前側端といい、
図3の上側の端部を奥側端ということにする。
【0023】
作業車両1は、例えば、第1作物列L1と第2作物列L2との間の手前側端付近を自動走行開始位置として、これらの作物列間に目標走行経路を設定しながら、当該作物列間を奥側端に向かって自動走行する。作業車両1が当該作物列間の奥側端に到達すると、作業車両1は進行方向に向かって右方向に旋回して、第2作物列L2と第3作物列L3との間の奥側端に移動する。そして、作業車両1は、第2作物列L2と第3作物列L3との間に目標走行経路を設定しながら、当該作物列間を手前側端に向かって自動走行する。
【0024】
作業車両1が当該作物列L2,L3間の手前側端に到達すると、作業車両1は進行方向に向かって左方向に旋回して、第3作物列L3と第4作物列L4の間の手前側端に移動する。そして、作業車両1は、第3作物列L3と第4作物列L4との間に目標走行経路を設定しながら、当該作物列間を奥側端に向かって自動走行する。以下同様な動作により、作業車両1は、
図3に破線で示すように移動する。そして、例えば、作業車両1が第4作物列L4と第5作物列L5との間の手前側端に到達した後、進行方向に向かって左方向に旋回すると、自動走行が停止される。自動走行中は、クラッチ機構9Bを介してポンプ9Aが駆動され、ノズル8a,8bから薬剤が噴出される。
【0025】
以下において、ある隣り合う作物列間において、当該作物列間の手前側端と奥側端のうち、作業車両1の走行が開始される側の端を当該作物列間の走行始端といい、走行始端と反対側の端を当該作物列間の走行終端という場合がある。また、隣り合う作物列の間隔Wを列間隔という場合がある。また、同じ作物列L内の隣り合う2つの作物の間隔dを幹間隔という場合がある。
【0026】
ユーザ等は、図示しない遠隔操作装置を操作することによって作業車両1を遠隔操作することが可能であるが、このような遠隔操作技術はよく知られているので、遠隔操作を行うための具体的な構成の説明については省略する。
図4は、作業車両1の主要な電気的構成を示すブロック図である。
作業車両1は、作業車両1の動作を制御するための制御装置30を備えている。
【0027】
制御装置30には、距離センサ13、方位センサ14、エンジンコントローラ21、走行コントローラ22、クラッチ作動装置23、記憶部24等が接続されている。
距離センサ13は、前述したように、圃場Hに存在する複数の物体各々までの距離情報を検出するものである。複数の物体の主たる対象は、作物Sである。方位センサ14は、前述したように、作業車両1の方位を検出するためのものである。
【0028】
エンジンコントローラ21は、エンジン5の回転数等を制御するものである。具体的には、エンジンコントローラ21は、エンジン5に設けられる燃料噴射装置としてのコモンレール装置16を制御することによって、エンジン5の回転数を制御する。エンジンコントローラ21は、コモンレール装置16を制御することによって、エンジン5への燃料の供給を停止させ、エンジン5の駆動を停止させることもできる。
【0029】
走行コントローラ22は、クローラ制御機構15を制御することによって、作業車両1の前進、後進、旋回および停止を制御する。クラッチ作動装置23は、ポンプユニット9内のクラッチ機構9Bを締結・解放させるための装置である。記憶部24は、ハードディスク、不揮発性メモリ等の記憶デバイスから構成されている。
制御装置30は、CPUおよびメモリ(ROM,RAM等)31を備えたマイクロコンピュータを含む。制御装置30は、圃場H内の隣り合う作物列L間に目標走行経路を設定しながら、作業車両1を目標走行経路に沿って自動走行させるための自動走行制御部32を含む。自動走行制御部32は、作物列認識処理部41と、目標作物列ペア抽出部42と、矩形認識部43と、目標設定部44と、偏差算出部45と、補正部46とを含む。
【0030】
作物列認識処理部41は、距離センサ13によって検出された各物体までの距離情報に基づいて、圃場H内の複数の作物列Lを認識するための処理を行う。作物列認識処理部41は、
図5に示すように、鳥瞰画像生成部51と、列候補領域生成部52と、作物列認識部53とを含む。
鳥瞰画像生成部51は、距離センサ13によって検出された各物体までの距離情報に基づいて物体各々の位置を検出し、検出された物体各々の位置を検出点として含む鳥瞰画像を生成する。以下、鳥瞰画像生成部51の動作について詳しく説明する。
【0031】
図6は、作物列に含まれる作物Sに対して距離センサ13からレーザ光が照射されている様子を示す模式的な斜視図である。
図7は、
図6を上方から見た模式的な平面図である。
図6および
図7には、隣り合う2つの作物列La,Lbが示されている。
図7を参照して、距離センサ13におけるレーザ光出力位置を原点Oとし、原点Oを通りかつ作業車両1の左右方向に平行な直線をX軸とし、原点Oを通り作業車両1の前後方向に平行な直線をY軸にとった座標系をセンサ座標系ということにする。
【0032】
距離センサ13からは、レーザ光が方向を変えて出射される。レーザ光の出射方向(出射角度)θを、+X軸とレーザ光とのなす角であって、原点Oを中心とした反時計回りの角度で表すことにする。レーザ光が出射角度θで出力されたときに、ある物体までの距離rが検出された場合には、距離rおよび出射角度θとの組み合わせ(r,θ)が、当該物体に対する距離情報として取得される。距離情報が(r,θ)である物体のセンサ座標系のX座標値xおよびY座標値yは、次式(1)によって表される。
【0033】
x=rcosθ
y=rsinθ…(1)
鳥瞰画像生成部51は、前記式(1)に基づいて、距離センサ13からの距離が検出された物体各々の位置を検出する。そして、鳥瞰画像生成部51は、物体各々の位置を検出点として含む鳥瞰画像を生成する。
図8は、鳥瞰画像生成部51によって生成された鳥瞰画像の一例を示す模式図である。
【0034】
図5に戻り、列候補領域生成部52は、鳥瞰画像に基づいて、所定距離以内に位置する2以上の検出点を含む1または複数の列候補領域を生成する。具体的には、列候補領域生成部52は、ぼかし処理部52Aと選択部52Bとを含む。
ぼかし処理部52Aは、鳥瞰画像に対して、検出点の画像を膨張させて近くにある検出点を結合させるぼかし処理を行って1または複数の塊画像を含むぼかし画像を生成する。この実施形態では、ぼかし処理部52Aは、ガウシアンフィルタによって鳥瞰画像に対してぼかし処理を行うことにより、多値画像からなるぼかし画像を生成する。そして、ぼかし処理部52Aは、ノイズを除去するために、所定の閾値を用いて、多値画像からなるぼかし画像を、二値画像からなるぼかし画像に変換する。二値画像からなるぼかし画像をノイズ除去後のぼかし画像という場合がある。
図9は、ぼかし処理部52Aによって生成されたノイズ除去後のぼかし画像の一例を示す模式図である。
【0035】
図5に戻り、選択部52Bは、ノイズ除去後のぼかし画像に含まれる塊画像のうち、所定の選択条件を満たすものを列候補領域として選択する。所定の選択条件は、例えば、塊画像の大きさが所定以上でかつ塊画像が作物列方向に長いという条件である。塊画像が作物列方向に長いという条件は、この実施形態では、センサ座標系のX軸方向よりもY軸方向に長いという条件であり、例えば、塊画像のアスペクト比から判定することができる。選択部52Bは、列候補領域を矩形に近似し、近似矩形の面積およびアスペクト比に基づいて、当該列候補領域が選択条件を満たしているか否かを判定するようにしてもよい。
【0036】
図5に戻り、作物列認識部53は、列候補領域生成部52によって生成される列候補領域に含まれる全ての検出点を使用して、作物列に対応する直線を認識する。作物列認識部53は、直線推定部53Aと、直線結合部53Bとを含む。
直線推定部53Aは、列候補領域毎に、当該列候補領域に含まれる全ての検出点を使用して、当該列候補領域に対応する直線を推定する。直線推定部53Aは、ある列候補領域に対応する直線を、次のようにして推定する。すなわち、直線推定部53Aは、当該列候補領域内に含まれる全ての検出点から直線を近似し、得られた直線を当該列候補領域の直線として推定する。
【0037】
直線結合部53Bは、直線推定部53Aによって推定された各列候補領域に対応する直線のうち、所定の結合条件を満たす直線どうしを結合することにより、作物列に対応する直線を生成する。所定の結合条件は、例えば、2つの直線の間隔が所定間隔以下であり、2つの直線の傾きの差が所定範囲内であることである。2つの直線の距離が所定間隔以下であるか否かは、例えば、それらの重心(中点)のX座標値のずれ量が所定値以下であるか否かによって判定される。
【0038】
具体的には、直線結合部53Bは、ある2つの列候補領域に対応する直線が、結合条件を満たすか否かを判別する。そして、結合条件を満たしていれば、直線結合部53Bは、当該2つの直線を結合する。直線結合部53Bは、このような処理を繰り返し行う。これにより、同じ作物列上に存在すると推定される複数の列候補領域の直線が結合される。この結果、各作物列に対応する直線が生成される。言い換えれば、各作物列が認識される。
【0039】
例えば、
図10に示すように、Y軸に沿う方向に並んだ2つの列候補領域A1およびA2が存在しており、これらの列候補領域A1およびA2に対して直線推定部53Aによって推定された直線がそれぞれε1およびε2であるとする。この場合において、直線ε1と直線ε2が結合条件を満たしていれば、これらの直線ε1,ε2が結合されて1つの直線にされる。
【0040】
2つの直線ε1,ε2の結合は、例えば、
図10に鎖線ε12で示すように、これらの直線ε1,ε2上の点のうち、Y座標値が最も小さい点とY座標値が最も大きい点を結ぶことにより行われる。なお、2つの直線ε1,ε2の結合は、他の方法で行われてもよい。例えば、2つの直線ε1,ε2の結合は、直線ε1の両端の端点と直線ε2両端の端点との4つの端点から一本の直線を求めることによって行われてもよい。
【0041】
図4に戻り、目標作物列ペア抽出部42は、作物列認識部53によって認識された複数の作物列Lから、作業車両1の目標走行経路を生成するために使用される隣り合う2つの作物列ペアを、目標作物列ペアとして抽出する。具体的には、目標作物列ペア抽出部42は、まず、隣り合う作物列Lの重心間の距離が所定範囲内にある作物列ペアをペア候補として設定する。より具体的には、目標作物列ペア抽出部42は、隣り合う作物列Lの重心(中点)のX座標値の差分が所定範囲内にある作物列ペアをペア候補として設定する。所定範囲は、現在設定されている列間隔Wよりも所定長だけ短い長さから列間隔Wよりも所定長だけ長い長さまでの範囲に設定される。
【0042】
次に、目標作物列ペア抽出部42は、例えば、作業車両1の左右中心を通りかつ作業車両1の前後方向に延びる直線を、隣り合う2つの作物列が挟むような配置にあるペア候補を、目標作物列ペアとして抽出する。
矩形認識部43は、目標作物列ペアを、当該目標作物列ペアを構成する2つの作物列を対辺とする矩形(長方形または正方形)として認識する。言い換えれば、矩形認識部43は、目標作物列ペアに近似する矩形を認識する。以下、この処理を矩形認識処理ということにする。以下において、矩形の隣接する2つの辺のうちの一方の辺を第1辺といい、他方の辺を第2辺ということにする。
【0043】
以下、
図11A〜
図11Dを参照して、矩形認識処理の一例について説明する。
例えば、
図11Aに示すように、2つの作物列LaおよびLbが目標作物列ペアとして選択されたとする。矩形認識部43は、まず、目標作物列ペアの重心gおよび傾きaを算出する。具体的には、矩形認識部43は、作物列Laの端点P1,P2の座標と、作物列La,Lbの端点P3,P4の座標を取得する。そして、矩形認識部43は、この4点を頂点とする四角形の重心を目標作物列ペアの重心gとして算出する。目標作物列ペアの傾きaは、例えば、2つの作物列La,Lbの間のほぼ中央を通る直線K0の傾きであり、例えば最小二乗法等によって算出できる。以下において、このようにして算出された目標作物列ペアの傾きaを、「第1の傾きa1」という場合がある。
【0044】
次に、
図11Bに示すように、矩形認識部43は、端点P1〜P4のうちX座標値が最も大きい端点(この例ではP4)を通り、第1の傾きa1を有する第1の直線K1を求める。そして、矩形認識部43は、第1の直線K1と、端点P1〜P4のうちX座標値が最も小さい端点(この例ではP2)との距離を、第1辺の長さq1として算出する。
次に、矩形認識部43は、XY平面内において、第1の傾きa1を有する直線に対して直交する直線の傾きを第2の傾きa2として求める。そして、
図11Cに示すように、矩形認識部43は、端点P1〜P4のうちY座標値が最も大きい端点(この例ではP3)を通り、第2の傾きa2を有する第2の直線K2を求める。そして、矩形認識部43は、第2の直線K2と、端点P1〜P4のうちY座標値が最も小さい端点(この例ではP2)との距離を、第2辺の長さq2として算出する。
【0045】
最後に、矩形認識部43は、前記重心gを重心として持ち、傾きが第2の傾きa2でかつ長さがq1である第1辺を持ち、傾きが第1の傾きa1でかつ長さがq2の第2辺を持つ矩形を、目標作物列ペアに近似する矩形として認識する。目標作物列ペアが
図11Aの場合、この目標作物列ペアに近似する矩形は
図11DにRで示すようになる。
なお、矩形認識部43は、前述した方法以外の方法によって、目標作物列ペアに近似する矩形を求めてもよい。目標作物列ペアに近似する矩形を求める方法としては、例えば特開2010−108135号公報の背景技術として記載されている各種の方法や、同公報の実施形態として記載されている各種方法を用いることができる。
【0046】
図4に戻り、目標設定部44は、矩形認識部43によって認識された矩形に基づいて、選択された作物列ペアを構成する2つの作物列間における作業車両1の目標走行経路および目標方位を設定する。
具体的には、目標設定部44は、
図12に示すように、矩形Rの左右両辺の間隔を目標作物列ペアの列間隔Wとして特定する。また、矩形Rの左右両辺の中央を通る直線を目標作物列ペアの中心線CLとして特定する。そして、目標設定部44は、中心線CLに対して、所定のオフセット量ΔWだけ一方の作物列(
図12の例では左側の作物列La)側にずれた直線を、目標走行経路Tとして設定するとともに、目標走行経路Tに沿う方向を目標方位として設定する。
【0047】
なお、中心線CLに対してオフセット量ΔWだけずらす方向は、目標作物列ペアによって異なる。例えば
図3の第1作物列L1と第2作物列L2とが目標作物列ペアである場合には、中心線CLに対してオフセット量ΔWだけずらす方向は第1作物列L1側の方向(進行方向に向かって左側方向)となる。一方、
図3の第2作物列L2と第3作物列L3とが目標作物列ペアである場合には、中心線CLに対してオフセット量ΔWだけずらす方向は第2作物列L2側の方向(進行方向に向かって右側方向)となる。
【0048】
図4に戻り、偏差算出部45は、目標走行経路Tからのずれ量および目標方位からのずれ量を算出する。偏差算出部45は、位置偏差算出部45Aと、方位偏差算出部45Bとを含む。位置偏差算出部45Aは、矩形認識部43によって認識された矩形Rに基づいて、目標作物列ペアを構成する2つの作物列間における作業車両1の現在位置を推定し、現在位置の目標走行経路からのずれ量(位置ずれ量)を算出する。方位偏差算出部45Bは、方位センサ14によって検出された作業車両1の現在方位の目標方位からのずれ量(方位ずれ量)を算出する。
【0049】
具体的には、位置偏差算出部45Aは、
図13に示すように、センサ座標系における作業車両1の位置および方位を、目標走行経路TをY’軸としかつY’軸に直交しかつ作業車両1の重心を通る線をX’軸とする作物列座標系の位置および方位に変換する。変換後の作業車両1の位置および方位が、目標作物列ペアを構成する2つの作物列間における作業車両1の現在の位置および方位に相当する。
【0050】
次に、位置偏差算出部45Aは、
図13に示すように、作物列座標系の原点O’から目標走行経路Tに沿って所定距離fだけ進行方向に進んだ位置を目標位置Qとして設定する。そして、位置偏差算出部45Aは、目標位置Qと作業車両1の重心位置Gとを結ぶ直線と、Y’軸とのなす角ηを、目標走行経路Tに対する作業車両1の位置ずれ量(位置ずれ角)として算出する。原点O’と作業車両1の重心位置Gまでの距離をΔxとすると、位置ずれ量ηは、次式(2)から算出することができる。
【0051】
η=cos
−1{f/(Δx
2+f
2)
1/2} …(2)
方位偏差算出部45Bは、作業車両1の向き(前後方向)と目標方向(Y’軸)とのなす角δを方位ずれ量として算出する。方位ずれ量δは、作業車両1の重心Gを通りかつ作業車両1の前後方向に延びる直線とY’軸との交点のY’座標値を求めることにより、位置ずれ量ηと同様な方法によって算出することができる。
【0052】
図4に戻り、補正部46は、位置補正部46Aと方位補正部46Bとを含む。位置補正部46Aは、位置偏差算出部45Aによって算出された位置ずれ量ηに基づいて、作物列間における作業車両1の位置を目標走行経路Tに近づけるように補正する。方位補正部46Bは、方位偏差算出部45Bによって算出された方位ずれ量δに基づき、作物列間における作業車両1の方位を目標方位に近づけるように補正する。つまり、この実施形態では、補正部46は、位置ずれ量ηが零に近づくとともに、方位ずれ量δが零に近づくように、クローラ制御機構15を制御する。
【0053】
図14は、
図4の作物列認識部53の変形例を示している。
この作物列認識部153は、基準直線生成部153Aと、列候補領域分類部153Bと、直線推定部153Cとを含む。
基準直線生成部153Aは、列候補領域生成部52によって生成された列候補領域に基づいて、各作物列の方向に延びると推定される複数の基準直線を生成する。以下、
図15A〜
図15Dを参照して、基準直線の生成方法について説明する。
【0054】
まず、
図15Aに示すように、基準直線生成部153Aは、全ての列候補領域のうちから1つの列候補領域を第1注目領域Aとして選択する。そして、基準直線生成部153Aは、第1注目領域A以外の列候補領域を比較領域とし、第1注目領域Aの重心と比較領域の重心とを結ぶ直線の傾きの絶対値が所定値α以上である比較領域を探索する。つまり、基準直線生成部153Aは、第1注目領域Aの重心と比較領域の重心とを結ぶ直線とセンサ座標系のY軸とのなす角が比較的小さい比較領域を探索する。このようにして探索された比較領域を
図15Aに列候補領域Bとして示す。
【0055】
次に、基準直線生成部153Aは、第1注目領域Aおよび列候補領域B以外の列候補領域を比較領域とし、比較領域の重心から前記直線に下した垂線の長さeが所定範囲内にある比較領域を探索する。所定範囲は、現在設定されている列間隔Wよりも所定距離だけ短い長さから当該列間隔Wよりも所定距離だけ長い長さまでの範囲に設定される。このようにして探索された比較領域を
図15Bに列候補領域Cとして示す。
図15Bの例では、列候補領域Cは、前記直線に対して右側にある。
【0056】
次に、基準直線生成部153Aは、第1注目領域Aおよび列候補領域B,C以外の列候補領域を比較領域とし、第1注目領域Aの重心と比較領域の重心とを結ぶ直線の傾きの絶対値が所定値α以上であるものを探索する。そして、
図15Cに示すように、探索された比較領域Dを左側直線に追加する。そして、第1注目領域Aと列候補領域Bと列候補領域Dのうち、Y座標値が最小の領域(この例では領域D)の重心とY座標値が最大の領域(この例では領域B)の重心とを結ぶ直線を、ある作物例に対応する基準直線として求める。
【0057】
次に、基準直線生成部153Aは、列候補領域Cを第2注目領域とし、第1注目領域Aおよび列候補領域B,C,D以外の列候補領域を比較領域とし、第2注目領域Cの重心と比較領域の重心とを結ぶ直線の傾きの絶対値が所定値α以上であるものを探索する。そして、
図15Dに示すように、探索された比較領域Eを左側直線に追加する。
また、基準直線生成部153Aは、第1注目領域Aおよび列候補領域B,C,D,E以外の列候補領域を比較領域とし、第2注目領域Cの重心と比較領域の重心とを結ぶ直線の傾きの絶対値が所定値α以上であるものを探索する。そして、
図15Dに示すように、探索された比較領域Fを左側直線に追加する。そして、第2注目領域Cと列候補領域Eと列候補領域Fのうち、Y座標値が最小の領域(この例では領域F)の重心とY座標値が最大の領域(この例では領域E)の重心とを結ぶ直線を、ある作物例に対応する基準直線として求める。
【0058】
基準直線生成部153Aは、第1目標領域として選択されていない列候補領域のうちから、1つの列候補領域を第1目標領域として選択して前述と同様な処理を行うことにより、基準直線を求める。そして、基準直線生成部153Aは、このような処理が全ての列候補領域に対して行われるまで、繰り返して行う。この結果、例えば、
図16に示すように、各作物列の方向に延びると推定される複数の基準直線LSが生成される。
【0059】
図14に戻り、列候補領域分類部153Bは、列候補領域生成部52によって生成された複数の列候補領域を、各基準直線からの距離に基づいて、作物列別のグループに分類する。具体的には、列候補領域分類部153Bは、列候補領域毎に、当該列候補領域の重心から各基準直線に下した垂線の距離に基づいて、当該列候補領域がいずれのグループに属するかを判別する。例えば、列候補領域分類部153Bは、ある列候補領域とある基準直線との距離が所定距離以内にある場合に、当該列候補領域が当該基準直線に対応する作物列のグループに属すると判別する。
【0060】
例えば、
図17に示すように、2つの基準直線LS1,LS2に対して、8つの列候補領域A1〜A8が存在する場合には、左側の4つの列候補領域A1〜A4が左側の基準直線LS1に対応する作物列のグルーブに分類され、右側の4つの列候補領域A5〜A8が右側の基準直線LS2に対応する作物列のグルーブに分類される。
直線推定部153Cは、グループ毎に、当該グループに含まれる全ての検出点を使用して、当該グループに対応する直線を推定し、得られた直線を当該グループに対応する作物列として認識する。直線推定部153Cは、あるグループに対応する直線を、次のようにして推定する。すなわち、直線推定部153Cは、当該グループ内に含まれる全ての検出点から直線を近似し、得られた直線を当該グループの直線として推定する。
【0061】
図18は、自動走行制御部32による自動走行制御処理の全体的な手順を示すフローチャートである。
作業車両1の動作モードとして、サーチモードとランモードとがある。サーチモードとは、作物列間に突入する前に、作物列認識処理を行うことにより、目標走行経路および目標方位の設定等を行うモードをいう。作物列認識処理とは、作物列認識処理部41、目標作物列ペア抽出部42、矩形認識部43、目標設定部44および偏差算出部45によって、目標走行経路Tおよび目標方位の設定、列間隔W、目標走行経路Tからの位置ずれ量η、目標方位からの方位ずれ量δ等を算出する処理をいう。
【0062】
ランモードとは、作物列認識処理を行いながら、位置ずれ量ηおよび方位ずれ量δが零に近づくように作業車両1を走行させるモードをいう。
自動走行制御を行うに際しては、ユーザは、列間隔Wと目標旋回回数Nとを作業車両1に設定する。目標旋回回数Nとは、自動運転が開始されてから自動運転を停止すべき位置に作業車両1が到達するまでの間に行われると予測される作業車両1の旋回回数である。ユーザによって設定された列間隔Wと目標旋回回数Nは、メモリ31に記憶される。また、ユーザは、例えば遠隔操作によって、作業車両1を自動走行の開始位置付近まで移動させる。そして、ユーザは、例えば遠隔操作によって、自動走行制御を開始させる。
【0063】
自動走行制御が開始されると、自動走行制御部32は、動作モードをサーチモードに設定する(ステップS1)。そして、自動走行制御部32は、作業車両1の旋回回数が目標旋回回数Nに達したか否かを判別する。
作業車両1の旋回回数が目標旋回回数Nに達していなければ(ステップS2:NO)、自動走行制御部32は、前述した作物列認識処理を行う(ステップS3)。
【0064】
次に、自動走行制御部32は、作物列検出が成功したか否かを判別する(ステップS4)。具体的には、自動走行制御部32は、作物列認識処理によって算出された位置ずれ量ηが所定の第1範囲内でかつ作物列認識処理によって算出された方位ずれ量δが所定の第2範囲内にあるという成否判定条件を満たしていれば、作物列検出が成功したと判別する。一方、作物列認識処理によって、目標作物列ペアが特定されなかった場合や、目標作物列ペアが特定されたとしても成否判定条件を満たしていない場合には、自動走行制御部32は、作物列検出が失敗したと判別する。
【0065】
作物列検出が失敗したと判別された場合には(ステップS4:NO)、自動走行制御部32は、動作モードがサーチモードであるか否かを判別する(ステップS5)。動作モードがサーチモードである場合には(ステップS5:YES)、自動走行制御部32は、作業車両1の位置を変更して、再度、作物列認識処理を行うために、作業車両1を移動させる(ステップS6)。
【0066】
具体的には、自動走行制御部32は、ステップS3の作物列認識処理において、目標作物列ペアが特定されていなかった場合には、作業車両1を単に所定量だけ後退させるようにしてもよい。一方、ステップS3の作物列認識処理において、目標作物列ペアが特定されている場合には、自動走行制御部32は、当該目標作物列ペアを構成する2つの作物列間の中心位置側に作業車両1を移動させるようにしてもよい。ステップS6の処理が終了すると、自動走行制御部32は、ステップS2に戻る。
【0067】
ステップS5において、動作モードがランモードであると判別された場合には(ステップS5:NO)、自動走行制御部32は、ステップS2に戻る。
ステップS4において、作物列検出が成功したと判別された場合には(ステップS4:YES)、自動走行制御部32は、メモリ31内の列間隔Wを更新する(ステップS7)。具体的には、自動走行制御部32は、メモリ31に記憶されている列間隔Wを、ステップS3の作物列認識処理によって取得した列間隔Wに書き換える。
【0068】
次に、自動走行制御部32は、動作モードがサーチモードであるか否かを判別する(ステップS8)。動作モードがサーチモードである場合には(ステップS8:YES)、自動走行制御部32は、基準方位を設定する(ステップS9)。具体的には、自動走行制御部32は、ステップS3で算出した方位ずれ量δおよび方位センサ14によって現在検出されている作業車両1の方位を用いて、ステップS3で設定された目標方位を、方位センサ14によって検出される方位に換算する。そして、自動走行制御部32は、換算後の方位を基準方位としてメモリ31に記憶する。これにより、方位センサ14によって検出される作業車両1の方位と基準方位との差を、目標方位に対する作業車両1の方位の方位ずれ量として検出できるようになる。
【0069】
次に、自動走行制御部32は、動作モードをランモードに設定する(ステップS10)。そして、自動走行制御部32は、ステップS11に移行する。ランモードにおいては、自動走行制御部32の補正部46は、位置ずれ量ηおよび方位ずれ量δが零に近づくように、クローラ制御機構15を制御する。
ステップS8において、動作モードがランモードであると判別された場合には(ステップS8:NO)、自動走行制御部32は、ステップS11に移行する。ステップS11では、自動走行制御部32は、ステップS4の判定結果が所定回数以上連続して作物列検出成功であるか否かを判別する。
【0070】
ステップS4の判定結果が所定回数以上連続して作物列検出成功である場合には(ステップS11:YES)、自動走行制御部32は、基準方位を更新する(ステップS12)。具体的には、自動走行制御部32は、ステップS3で設定された方位ずれ量δおよび方位センサ14によって現在検出されている作業車両1の方位を用いて、ステップS3で設定された目標方位を、方位センサ14によって検出される方位に換算する。そして、自動走行制御部32は、メモリ31に記憶されている基準方位を、換算後の方位に書き換える。この後、自動走行制御部32はステップS13に移行する。
【0071】
ステップS11において、ステップS4の判定結果が所定回数以上連続して作物列検出成功ではないと判別された場合には(ステップS11:NO)、自動走行制御部32は、基準方位を更新することなく、ステップS13に移行する。ステップS4の判定結果が所定回数以上連続して作物列検出成功である場合のみ、基準方位を更新しているのは、作物列認識処理がノイズの影響等によって正確に行われなかった場合等に基準方位が更新されるのを抑制するためである。
【0072】
ステップS13では、自動走行制御部32は、作業車両1が作物列間の走行終端(列終端)に到着したか否かを判別する。自動走行制御部32は、例えば、目標作物列ペア間の走行終端から所定距離だけ手前位置に作業車両1が到達したときに走行距離の測定を開始し、測定された走行距離が前記所定距離に達したときに、作業車両1が作物列間の走行終端に到着したと判別する。自動走行制御部32は、目標作物列ペア間の走行終端から所定距離だけ手前位置に作業車両1が到達したときに計時を開始し、前記所定距離を作業車両1が走行するのに必要な時間が経過したときに作業車両1が作物列間の走行終端に到着したと判別するようにしてもよい。
【0073】
作業車両1が目標作物列ペア間の走行終端に到着していない場合には(ステップS13:NO)、自動走行制御部32は、ステップS2に戻る。
ステップS13において、作業車両1が目標作物列ペア間の走行終端に到着したと判別された場合には(ステップS13:YES)、自動走行制御部32は、次の作物列間の走行始端まで作業車両1を移動させるために、作業車両1を旋回させる(ステップS14)。具体的には、自動走行制御部32は、クローラ制御機構15を制御して、作業車両1を所定の旋回方向に約180度旋回させる。旋回半径は、メモリ31に記憶されている列間隔Wの1/2に設定される。
【0074】
所定の旋回方向は、予め設定された1回目の走行終端での旋回方向と、今回の旋回が何回目の旋回であるかという情報に基づいて決定する。例えば、1回目の終端での旋回方向が右である場合には、今回の旋回が奇数回目であれば旋回方向は右方向となり、今回の旋回が偶数回目であれば旋回方向は左方向となる。一方、1回目の終端での旋回方向が左である場合には、今回の旋回が奇数回目であれば旋回方向は左方向となり、今回の旋回が偶数回目であれば旋回方向は右方向となる。
【0075】
ステップS14の処理が終了すると、自動走行制御部32は、ステップS2に戻る。
ステップS2において、作業車両1の旋回回数が目標旋回回数Nに達していると判別された場合には(ステップS2:YES)、自動走行制御部32は、自動走行制御を終了させる。
図18のフローチャートでは、自動走行制御部32は、ステップS14の旋回後に、ステップS2に戻っているが、ステップS14の旋回後に、ステップS1に戻るようにしてもよい。この場合には、ステップS14の旋回後に、動作モードがサーチモードに設定されるので、作業車両は一旦停止される。
【0076】
圃場Hによっては、隣り合う作物列Lが直線状ではなく途中で屈曲している場合もある。言い換えれば、隣り合う作物列Lの傾きが途中で変化している場合がある。このような場合には、作業車両1の目標走行経路の方向(目標方位)を隣り合う作物列Lの傾きの変化に応じて変化させる必要がある。前述の実施形態では、自動走行中に作物列認識処理(ステップS3参照)によって認識される矩形に基づいて、目標方位(基準方位)を更新しているため、作業車両1の目標方位を作物列の傾きの変化に応じて変化させることができる。この点について、
図19を用いて説明する。
【0077】
図19では、目標作物列ペアを構成する2つの作物列La,Lbが、それぞれ長さ方向の中間位置Pa,Pb付近で右方向に屈曲している。作業車両1は、作物列La,Lb間を
図19の紙面の下側から上側に向かって自動走行するものとする。説明の便宜上、
図19の作物列間の下側の端が走行始点であり、作物列間の上側の端が走行終点であるものとする。
【0078】
まず、自動走行制御部32は、作物列La,Lb間における走行始点から作物列La,Lbの屈曲点Pa,Pbまでの部分に対応した第1矩形R1を認識する。第1矩形R1の左右両辺の傾き(目標方位)は、作物列La,Lbにおける走行始点から作物列La,Lbの屈曲点Pa,Pbまでの部分の平均的な傾きに応じた角度となる。したがって、作業車両1は矢印V1のように走行する。
【0079】
作業車両1が作物列La,Lbの屈曲点Pa,Pbに近づくと、自動走行制御部32は、作物列La,Lbにおける屈曲点Pa,Pbを長さ方向の中間に含む部分に対応した第2矩形R2を認識する。第2矩形R2の左右両辺の傾き(目標方位)は、作物列La,Lbにおける屈曲点Pa,Pbを長さ方向の中間に含む部分の平均的な傾きに応じた角度となる。このため、第2矩形R2の傾きは、第1矩形R1の傾きに対して、進行方向に向かって右方向に傾いた角度となる。これにより、目標方位(基準方位)が進行方向に向かって右方向側に修正される。したがって、作業車両1は矢印V2のように走行する。
【0080】
作業車両1が作物列La,Lbの屈曲点Pa,Pbを通過すると、自動走行制御部32は、作物列La,Lbにおける屈曲点Pa,Pbよりも走行終端側部分に対応した第3矩形R3を認識する。第3矩形R3の左右両辺の傾き(目標方位)は、作物列La,Lbにおける屈曲点Pa,Pbよりも走行終端側部分の平均的な傾きに応じた角度となる。このため、第3矩形R3の傾きは、第2矩形R2の傾きに対して、進行方向に向かってさらに右方向に傾いた角度となる。これにより、目標方位(基準方位)が進行方向に向かって右方向側に修正される。したがって、作業車両1は矢印V3のように走行する。このように、作業車両1は、作物列La,Lbが途中で屈曲している場合でも、作物列La,Lbの形状に応じた目標走行経路に沿って走行することになる。
【0081】
また、前述の実施形態では、レーザ光を利用した距離センサ13によって各物体の距離情報が取得され、取得された距離情報に基づいて圃場Hの鳥瞰画像が生成される。そして、生成された鳥瞰画像に基づいて、作物列が認識される。したがって、この構成によって生成される鳥瞰画像は、カメラの撮像画像に基づいて生成される圃場の鳥瞰画像に比べて、照明条件や季節等といった圃場の環境の影響を受けにくい。このため、前述の実施形態では、圃場の環境の変化にかかわらず、安定して作物列を認識することが可能となる。
【0082】
また、前述の実施形態では、列候補領域に含まれる全ての検出点を使用して、作物列に対応する直線が認識される。したがって、列候補領域に雑草等の作物以外の物体の検出点が含まれている場合においても、作物列に対応する直線を認識する際に、このような作物以外の物体の検出点の影響を低減することができる。これにより、作物列を高精度で認識することが可能となる。
【0083】
具体的には、
図5に示される列候補領域生成部52および作物列認識部53では、所定距離以内に位置する2以上の検出点を含む1または複数の列候補領域が生成され、生成された列候補領域に含まれる全ての検出点を使用して、当該列候補領域に対応する直線が推定される。したがって、列候補領域に雑草等の作物以外の物体の検出点が含まれている場合においても、当該列候補領域に対応する直線を推定する際に、このような作物以外の物体の検出点の影響を低減することができる。これにより、作物列を高精度で認識することが可能となる。
【0084】
また、前述の
図14に示される作物列認識部153では、グループ毎に、当該グループに含まれる全ての検出点を使用して当該グループに対応する直線が推定される。したがって、グループに雑草等の作物以外の物体の検出点が含まれている場合においても、当該グループに対応する直線を推定する際に、このような作物以外の物体の検出点の影響を低減することができる。これにより、作物列を高精度で認識することが可能となる。
【0085】
以上、この発明の実施形態について説明したが、この発明はさらに他の形態で実施することもできる。例えば、前述の実施形態では、遠隔操作によって作業車両1を自動走行開始位置まで移動させているが、トラック等によって作業車両1を自動走行開始位置まで運搬するようにしてもよい。また、作業車両1を手動運転可能とし、手動運転によって自動走行開始位置まで移動させてもよい。
【0086】
また、前述の実施形態では、作業車両が薬剤散布用の作業車両である場合について説明したが、作業車両は薬剤散布用以外の作業車両であってもよい。
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。