(用語の定義)
本開示において「農業機械」は、農業用途で使用される機械を意味する。農業機械の例は、トラクタ、収穫機、田植機、乗用管理機、野菜移植機、草刈機、播種機、施肥機、および農業用移動ロボットを含む。トラクタのような作業車両が単独で「農業機械」として機能する場合だけでなく、作業車両に装着または牽引される作業機(インプルメント)と作業車両の全体が一つの「農業機械」として機能する場合がある。農業機械は、圃場内の地面に対して、耕耘、播種、防除、施肥、作物の植え付け、または収穫などの農作業を行う。これらの農作業を「対地作業」または単に「作業」と称することがある。車両型の農業機械が農作業を行いながら走行することを「作業走行」と称することがある。
「自動運転」は、運転者による手動操作によらず、制御装置の働きによって農業機械の移動を制御することを意味する。自動運転を行う農業機械は「自動運転農機」または「ロボット農機」と呼ばれることがある。自動運転中、農業機械の移動だけでなく、農作業の動作(例えば作業機の動作)も自動で制御されてもよい。農業機械が車両型の機械である場合、自動運転によって農業機械が走行することを「自動走行」と称する。制御装置は、農業機械の移動に必要な操舵、移動速度の調整、移動の開始および停止の少なくとも一つを制御し得る。作業機が装着された作業車両を制御する場合、制御装置は、作業機の昇降、作業機の動作の開始および停止などの動作を制御してもよい。自動運転による移動には、農業機械が所定の経路に沿って目的地に向かう移動のみならず、追尾目標に追従する移動も含まれ得る。自動運転を行う農業機械は、部分的にユーザの指示に基づいて移動してもよい。また、自動運転を行う農業機械は、自動運転モードに加えて、運転者の手動操作によって移動する手動運転モードで動作してもよい。手動によらず、制御装置の働きによって農業機械の操舵を行うことを「自動操舵」と称する。制御装置の一部または全部が農業機械の外部にあってもよい。農業機械の外部にある制御装置と農業機械との間では、制御信号、コマンド、またはデータなどの通信が行われ得る。自動運転を行う農業機械は、人がその農業機械の移動の制御に関与することなく、周囲の環境をセンシングしながら自律的に移動してもよい。自律的な移動が可能な農業機械は、無人で圃場内または圃場外(例えば道路)を走行することができる。自律移動中に、障害物の検出および障害物の回避動作を行ってもよい。
「作業計画」は、農業機械によって実行される一つ以上の農作業の予定を定めるデータである。作業計画は、例えば、農業機械によって実行される農作業の順序および各農作業が行われる圃場を示す情報を含み得る。作業計画は、各農作業が行われる予定の日および時刻の情報を含んでいてもよい。各農作業が行われる予定の日および時刻の情報を含む作業計画を、特に「作業スケジュール」または単に「スケジュール」と称する。作業スケジュールは、各作業日に行われる各農作業の開始予定時刻および/または終了予定時刻の情報を含み得る。作業計画あるいは作業スケジュールは、農作業ごとに、作業の内容、使用されるインプルメント、および/または、使用される農業資材の種類および分量などの情報を含んでいてもよい。ここで「農業資材」とは、農業機械が行う農作業で使用される物資を意味する。農業資材を単に「資材」と呼ぶことがある。農業資材は、例えば農薬、肥料、種、または苗などの、農作業によって消費される物資を含み得る。作業計画は、農業機械と通信して農作業を管理する処理装置、または農業機械に搭載された処理装置によって作成され得る。処理装置は、例えば、ユーザ(農業経営者または農作業者など)が端末装置を操作して入力した情報に基づいて作業計画を作成することができる。本明細書において、農業機械と通信して農作業を管理する処理装置を「管理装置」と称する。管理装置は、複数の農業機械の農作業を管理してもよい。その場合、管理装置は、複数の農業機械の各々が実行する各農作業に関する情報を含む作業計画を作成してもよい。作業計画は、各農業機械によってダウンロードされ、記憶装置に格納され得る。各農業機械は、作業計画に従って、予定された農作業を実行するために、自動で圃場に向かい、農作業を実行することができる。
「環境地図」は、農業機械が移動する環境に存在する物の位置または領域を所定の座標系によって表現したデータである。環境地図を単に「地図」または「地図データ」と称することがある。環境地図を規定する座標系は、例えば、地球に対して固定された地理座標系などのワールド座標系であり得る。環境地図は、環境に存在する物について、位置以外の情報(例えば、属性情報その他の情報)を含んでいてもよい。環境地図は、点群地図または格子地図など、さまざまな形式の地図を含む。環境地図を構築する過程で生成または処理される局所地図または部分地図のデータについても、「地図」または「地図データ」と呼ぶ。
「大域的経路」(global path)は、経路計画を行う処理装置によって生成される、農業機械が自動で移動するときの出発地点から目的地点までを結ぶ経路のデータを意味する。大域的経路を生成することを大域的経路計画(global path planning)または大域的経路設計と称する。以下の説明において、大域的経路を「目標経路」または単に「経路」とも称する。大域的経路は、例えば、農業機械が通過すべき複数の点の座標値によって規定され得る。農業機械が通過すべき点を「ウェイポイント」と称し、隣り合うウェイポイント間を結ぶ線分を「リンク」と称する。
「局所的経路」(local path)は、大域的経路に沿って農業機械が自動で移動するときに逐次生成される、障害物を回避可能な局所的な経路を意味する。局所的経路を生成することを局所的経路計画(local path planning)または局所的経路設計と称する。局所的経路は、農業機械が移動している間に、農業機械が備える一つ以上のセンシング装置によって取得されたデータに基づいて逐次生成される。局所的経路は、大域的経路の一部に沿った複数のウェイポイントによって規定され得る。ただし、大域的経路の付近に障害物が存在する場合、その障害物を迂回するようにウェイポイントが設定され得る。局所的経路におけるウェイポイント間のリンクの長さは、大域的経路におけるウェイポイント間のリンクの長さよりも短い。局所的経路を生成する装置は、大域的経路を生成する装置と同一でもよいし、異なっていてもよい。例えば、農業機械による農作業を管理する管理装置が大域的経路を生成し、農業機械に搭載された制御装置が局所的経路を生成してもよい。その場合、管理装置と制御装置との組み合わせが、経路計画を行う「処理装置」として機能する。農業機械の制御装置が、大域的経路設計および局所的経路設計の両方を行う処理装置として機能してもよい。
「農道」は、主に農業目的で利用される道を意味する。農道は、アスファルトで舗装された道に限らず、土または砂利等で覆われた未舗装の道も含む。農道は、車両型の農業機械(例えばトラクタ等の作業車両)のみが専ら通行可能な道(私道を含む)と、一般の車両(乗用車、トラック、バス等)も通行可能な道路とを含む。作業車両は、農道に加えて一般道を自動で走行してもよい。一般道は、一般の車両の交通のために整備された道路である。
(実施形態)
以下、本開示の実施形態を説明する。ただし、必要以上に詳細な説明は省略することがある。例えば、既によく知られた事項の詳細な説明および実質的に同一の構成に関する重複する説明を省略することがある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。以下の説明において、同一または類似の機能を有する構成要素については、同一の参照符号を付している。
以下の実施形態は例示であり、本開示の技術は以下の実施形態に限定されない。例えば、以下の実施形態で示される数値、形状、材料、ステップ、ステップの順序、表示画面のレイアウトなどは、あくまでも一例であり、技術的に矛盾が生じない限りにおいて種々の改変が可能である。また、技術的に矛盾が生じない限りにおいて、一の態様と他の態様とを組み合わせることが可能である。
以下、農業機械の一例であるトラクタなどの作業車両に本開示の技術を適用した実施形態を主に説明する。本開示の技術は、トラクタなどの作業車両に限らず、他の種類の農業機械にも適用することができる。
図1は、本開示の例示的な実施形態による農業管理システムの概要を説明するための図である。図1に示す農業管理システムは、作業車両100と、端末装置400と、管理装置600とを備える。端末装置400は、作業車両100を遠隔で監視するユーザが使用するコンピュータである。管理装置600は、農業管理システムを運営する事業者が管理するコンピュータである。作業車両100、端末装置400、および管理装置600は、ネットワーク80を介して互いに通信することができる。図1には1台の作業車両100が例示されているが、農業管理システムは、複数の作業車両またはその他の農業機械を含んでいてもよい。
本実施形態における作業車両100はトラクタである。作業車両100は、後部および前部の一方または両方にインプルメントを装着することができる。作業車両100は、インプルメントの種類に応じた農作業を行いながら圃場内を走行することができる。作業車両100は、インプルメントを装着しない状態で圃場内または圃場外を走行してもよい。
作業車両100は、自動運転機能を備える。すなわち、作業車両100は、手動によらず、制御装置の働きによって走行することができる。本実施形態における制御装置は、作業車両100の内部に設けられ、作業車両100の速度および操舵の両方を制御することができる。作業車両100は、圃場内に限らず、圃場外(例えば道路)を自動走行することもできる。
作業車両100は、GNSS受信機およびLiDARセンサなどの、測位あるいは自己位置推定のために利用される装置を備える。作業車両100の制御装置は、作業車両100の位置と、目標経路の情報とに基づいて、作業車両100を自動で走行させる。制御装置は、作業車両100の走行制御に加えて、インプルメントの動作の制御も行う。これにより、作業車両100は、圃場内を自動で走行しながらインプルメントを用いて農作業を実行することができる。さらに、作業車両100は、圃場外の道(例えば、農道または一般道)を目標経路に沿って自動で走行することができる。作業車両100は、圃場外の道に沿って自動走行を行うとき、カメラまたはLiDARセンサなどのセンシング装置から出力されるデータに基づいて、障害物を回避可能な局所的経路を目標経路に沿って生成しながら走行する。作業車両100は、センシング装置から出力されるデータに基づいて農道を検出し、農道上に局所的経路を生成しながら走行することもできる。これにより、大域的経路が農道上に正しく設定されていない場合であっても、農道上を適切に自動走行することができる。作業車両100は、圃場内においては、上記と同様に局所的経路を生成しながら走行してもよいし、局所的経路を生成せずに目標経路に沿って走行し、障害物が検出された場合に停止する、という動作を行ってもよい。
管理装置600は、作業車両100による農作業を管理するコンピュータである。管理装置600は、例えば圃場に関する情報をクラウド上で一元管理し、クラウド上のデータを活用して農業を支援するサーバコンピュータであり得る。管理装置600は、例えば、作業車両100の作業計画を作成し、その作業計画に従って、作業車両100の大域的経路計画を行う。管理装置600は、圃場内と圃場外とで異なる方法で大域的経路(目標経路)を生成する。管理装置600は、圃場内の目標経路を、圃場に関する情報に基づいて生成する。例えば、管理装置600は、予め登録された圃場の外形、圃場の面積、圃場の出入口の位置、作業車両100の幅、インプルメントの幅、作業の内容、栽培される作物の種類、作物の生育領域、作物の生育状況、または作物列もしくは畝の間隔などの、種々の情報に基づいて圃場内の目標経路を生成することができる。管理装置600は、例えば、ユーザが端末装置400または他のデバイスを用いて入力した情報に基づいて圃場内の目標経路を生成する。管理装置600は、圃場内の経路を、例えば作業が行われる作業領域の全体をカバーするように生成する。一方、管理装置600は、圃場外の目標経路を、作業計画またはユーザの指示に従って生成する。例えば、管理装置600は、作業計画が示す農作業の順序、各農作業が行われる圃場の位置、圃場の出入口の位置、各農作業の開始予定時刻および終了予定時刻、路面状態、気象状況、または交通状況などの、種々の情報に基づいて圃場外の目標経路を生成することができる。管理装置600は、作業計画によらず、ユーザが端末装置400を操作して指定した経路または経由地点を示す情報に基づいて目標経路を生成してもよい。管理装置600は、さらに、作業車両100または他の移動体がLiDARセンサなどのセンシング装置を用いて収集したデータに基づいて、環境地図の生成および編集を行ってもよい。管理装置600は、生成した作業計画、目標経路、および環境地図のデータを作業車両100に送信する。作業車両100は、それらのデータに基づいて、移動および農作業を自動で行う。
なお、大域的経路設計および環境地図の生成(または編集)は、管理装置600に限らず、他の装置が行ってもよい。例えば、作業車両100の制御装置が、大域的経路設計または環境地図の生成もしくは編集を行ってもよい。
端末装置400は、作業車両100から離れた場所にいるユーザが使用するコンピュータである。図1に示す端末装置400はラップトップコンピュータであるが、これに限定されない。端末装置400は、デスクトップPC(personal computer)などの据え置き型のコンピュータであってもよいし、スマートフォンまたはタブレットコンピュータなどのモバイル端末でもよい。端末装置400は、作業車両100を遠隔監視したり、作業車両100を遠隔操作したりするために用いられ得る。例えば、端末装置400は、作業車両100が備える1台以上のカメラ(撮像装置)が撮影した映像をディスプレイに表示させることができる。ユーザは、その映像を見て、作業車両100の周囲の状況を確認し、作業車両100に停止または発進の指示を送ることができる。端末装置400は、さらに、作業車両100の作業計画(例えば各農作業のスケジュール)を作成するために必要な情報をユーザが入力するための設定画面をディスプレイに表示することもできる。ユーザが設定画面上で必要な情報を入力し送信の操作を行うと、端末装置400は、入力された情報を管理装置600に送信する。管理装置600は、その情報に基づいて作業計画を作成する。端末装置400は、さらに、目標経路を設定するために必要な情報をユーザが入力するための設定画面をディスプレイに表示する機能を備えていてもよい。
以下、本実施形態におけるシステムの構成および動作をより詳細に説明する。
[1.構成]
図2は、作業車両100、および作業車両100に連結されたインプルメント300の例を模式的に示す側面図である。本実施形態における作業車両100は、手動運転モードと自動運転モードの両方で動作することができる。自動運転モードにおいて、作業車両100は無人で走行することができる。作業車両100は、圃場内と圃場外の両方で自動運転が可能である。
図2に示すように、作業車両100は、車両本体101と、原動機(エンジン)102と、変速装置(トランスミッション)103とを備える。車両本体101には、タイヤ付きの車輪104と、キャビン105とが設けられている。車輪104は、一対の前輪104Fと一対の後輪104Rとを含む。キャビン105の内部に運転席107、操舵装置106、操作端末200、および操作のためのスイッチ群が設けられている。作業車両100が圃場内で作業走行を行うとき、前輪104Fおよび後輪104Rの一方または両方は、タイヤ付き車輪ではなく無限軌道(track)を装着した(複数の)車輪(クローラ)に置き換えられてもよい。
作業車両100は、作業車両100の周囲をセンシングする複数のセンシング装置を備える。図2の例では、センシング装置は、複数のカメラ120と、LiDARセンサ140と、複数の障害物センサ130とを含む。
カメラ120は、例えば作業車両100の前後左右に設けられ得る。カメラ120は、作業車両100の周囲の環境を撮影し、画像データを生成する。カメラ120が取得した画像は、遠隔監視を行うための端末装置400に送信され得る。当該画像は、無人運転時に作業車両100を監視するために用いられ得る。カメラ120は、作業車両100が圃場外の道(農道または一般道)を走行するときに、周辺の地物もしくは障害物、白線、標識、または表示などを認識するための画像を生成する用途でも使用され得る。
図2の例におけるLiDARセンサ140は、車両本体101の前面下部に配置されている。LiDARセンサ140は、他の位置に設けられていてもよい。LiDARセンサ140は、作業車両100が主に圃場外を走行している間、周囲の環境に存在する物体の各計測点までの距離および方向、または各計測点の2次元もしくは3次元の座標値を示すセンサデータを繰り返し出力する。LiDARセンサ140から出力されたセンサデータは、作業車両100の制御装置によって処理される。制御装置は、センサデータと、環境地図とのマッチングにより、作業車両100の自己位置推定を行うことができる。制御装置は、さらに、センサデータに基づいて、作業車両100の周辺に存在する障害物などの物体を検出し、作業車両100が実際に進むべき局所的経路を、大域的経路に沿って生成することができる。制御装置は、例えばSLAM(Simultaneous Localization and Mapping)などのアルゴリズムを利用して、環境地図を生成または編集することもできる。作業車両100は、異なる位置に異なる向きで配置された複数のLiDARセンサを備えていてもよい。
図2に示す複数の障害物センサ130は、キャビン105の前部および後部に設けられている。障害物センサ130は、他の部位にも配置され得る。例えば、車両本体101の側部、前部、および後部の任意の位置に、一つまたは複数の障害物センサ130が設けられ得る。障害物センサ130は、例えばレーザスキャナまたは超音波ソナーを含み得る。障害物センサ130は、自動走行時に周囲の障害物を検出して作業車両100を停止したり迂回したりするために用いられる。LiDARセンサ140が障害物センサ130の一つとして利用されてもよい。
作業車両100は、さらに、GNSSユニット110を備える。GNSSユニット110は、GNSS受信機を含む。GNSS受信機は、GNSS衛星からの信号を受信するアンテナと、アンテナが受信した信号に基づいて作業車両100の位置を計算するプロセッサとを備え得る。GNSSユニット110は、複数のGNSS衛星から送信される衛星信号を受信し、衛星信号に基づいて測位を行う。GNSSは、GPS(Global Positioning System)、QZSS(Quasi-Zenith Satellite System、例えばみちびき)、GLONASS、Galileo、およびBeiDouなどの衛星測位システムの総称である。本実施形態におけるGNSSユニット110は、キャビン105の上部に設けられているが、他の位置に設けられていてもよい。
GNSSユニット110は、慣性計測装置(IMU)を含み得る。IMUからの信号を利用して位置データを補完することができる。IMUは、作業車両100の傾きおよび微小な動きを計測することができる。IMUによって取得されたデータを用いて、衛星信号に基づく位置データを補完することにより、測位の性能を向上させることができる。
作業車両100の制御装置は、GNSSユニット110による測位結果に加えて、カメラ120またはLiDARセンサ140などのセンシング装置が取得したセンシングデータを測位に利用してもよい。農道、林道、一般道、または果樹園のように、作業車両100が走行する環境内に特徴点として機能する地物が存在する場合、カメラ120またはLiDARセンサ140によって取得されたデータと、予め記憶装置に格納された環境地図とに基づいて、作業車両100の位置および向きを高い精度で推定することができる。カメラ120またはLiDARセンサ140が取得したデータを用いて、衛星信号に基づく位置データを補正または補完することで、より高い精度で作業車両100の位置を特定できる。
原動機102は、例えばディーゼルエンジンであり得る。ディーゼルエンジンに代えて電動モータが使用されてもよい。変速装置103は、変速によって作業車両100の推進力および移動速度を変化させることができる。変速装置103は、作業車両100の前進と後進とを切り換えることもできる。
操舵装置106は、ステアリングホイールと、ステアリングホイールに接続されたステアリングシャフトと、ステアリングホイールによる操舵を補助するパワーステアリング装置とを含む。前輪104Fは操舵輪であり、その切れ角(「操舵角」とも称する。)を変化させることにより、作業車両100の走行方向を変化させることができる。前輪104Fの操舵角は、ステアリングホイールを操作することによって変化させることができる。パワーステアリング装置は、前輪104Fの操舵角を変化させるための補助力を供給する油圧装置または電動モータを含む。自動操舵が行われるときには、作業車両100内に配置された制御装置からの制御により、油圧装置または電動モータの力によって操舵角が自動で調整される。
車両本体101の後部には、連結装置108が設けられている。連結装置108は、例えば3点支持装置(「3点リンク」または「3点ヒッチ」とも称する。)、PTO(Power Take Off)軸、ユニバーサルジョイント、および通信ケーブルを含む。連結装置108によってインプルメント300を作業車両100に着脱することができる。連結装置108は、例えば油圧装置によって3点リンクを昇降させ、インプルメント300の位置または姿勢を変化させることができる。また、ユニバーサルジョイントを介して作業車両100からインプルメント300に動力を送ることができる。作業車両100は、インプルメント300を引きながら、インプルメント300に所定の作業を実行させることができる。連結装置は、車両本体101の前方に設けられていてもよい。その場合、作業車両100の前方にインプルメントを接続することができる。
図2に示すインプルメント300は、ロータリ耕耘機であるが、インプルメント300はロータリ耕耘機に限定されない。例えば、シーダ(播種機)、スプレッダ(施肥機)、移植機、モーア(草刈機)、レーキ、ベーラ(集草機)、ハーベスタ(収穫機)、スプレイヤ、またはハローなどの、任意のインプルメントを作業車両100に接続して使用することができる。
図2に示す作業車両100は、有人運転が可能であるが、無人運転のみに対応していてもよい。その場合には、キャビン105、操舵装置106、および運転席107などの、有人運転にのみ必要な構成要素は、作業車両100に設けられていなくてもよい。無人の作業車両100は、自律走行、またはユーザによる遠隔操作によって走行することができる。
図3は、作業車両100およびインプルメント300の構成例を示すブロック図である。作業車両100とインプルメント300は、連結装置108に含まれる通信ケーブルを介して互いに通信することができる。作業車両100は、ネットワーク80を介して、端末装置400および管理装置600と通信することができる。
図3の例における作業車両100は、GNSSユニット110、カメラ120、障害物センサ130、LiDARセンサ140、および操作端末200に加え、作業車両100の動作状態を検出するセンサ群150、制御システム160、通信装置190、操作スイッチ群210、ブザー220、および駆動装置240を備える。これらの構成要素は、バスを介して相互に通信可能に接続される。GNSSユニット110は、GNSS受信機111と、RTK受信機112と、慣性計測装置(IMU)115と、処理回路116とを備える。センサ群150は、ステアリングホイールセンサ152と、切れ角センサ154、車軸センサ156とを含む。制御システム160は、記憶装置170と、制御装置180とを備える。制御装置180は、複数の電子制御ユニット(ECU)181から186を備える。インプルメント300は、駆動装置340と、制御装置380と、通信装置390とを備える。なお、図3には、作業車両100による自動運転の動作との関連性が相対的に高い構成要素が示されており、それ以外の構成要素の図示は省略されている。
GNSSユニット110におけるGNSS受信機111は、複数のGNSS衛星から送信される衛星信号を受信し、衛星信号に基づいてGNSSデータを生成する。GNSSデータは、例えばNMEA-0183フォーマットなどの所定のフォーマットで生成される。GNSSデータは、例えば、衛星信号が受信されたそれぞれの衛星の識別番号、仰角、方位角、および受信強度を示す値を含み得る。
図3に示すGNSSユニット110は、RTK(Real Time Kinematic)-GNSSを利用して作業車両100の測位を行う。図4は、RTK-GNSSによる測位を行う作業車両100の例を示す概念図である。RTK-GNSSによる測位では、複数のGNSS衛星50から送信される衛星信号に加えて、基準局60から送信される補正信号が利用される。基準局60は、作業車両100が作業走行を行う圃場の付近(例えば、作業車両100から10km以内の位置)に設置され得る。基準局60は、複数のGNSS衛星50から受信した衛星信号に基づいて、例えばRTCMフォーマットの補正信号を生成し、GNSSユニット110に送信する。RTK受信機112は、アンテナおよびモデムを含み、基準局60から送信される補正信号を受信する。GNSSユニット110の処理回路116は、補正信号に基づき、GNSS受信機111による測位結果を補正する。RTK-GNSSを用いることにより、例えば誤差数cmの精度で測位を行うことが可能である。緯度、経度、および高度の情報を含む位置情報が、RTK-GNSSによる高精度の測位によって取得される。GNSSユニット110は、例えば1秒間に1回から10回程度の頻度で、作業車両100の位置を計算する。
なお、測位方法はRTK-GNSSに限らず、必要な精度の位置情報が得られる任意の測位方法(干渉測位法または相対測位法など)を用いることができる。例えば、VRS(Virtual Reference Station)またはDGPS(Differential Global Positioning System)を利用した測位を行ってもよい。基準局60から送信される補正信号を用いなくても必要な精度の位置情報が得られる場合は、補正信号を用いずに位置情報を生成してもよい。その場合、GNSSユニット110は、RTK受信機112を備えていなくてもよい。
RTK-GNSSを利用する場合であっても、基準局60からの補正信号が得られない場所(例えば圃場から遠く離れた道路上)では、RTK受信機112からの信号によらず、他の方法で作業車両100の位置が推定される。例えば、LiDARセンサ140および/またはカメラ120から出力されたデータと、高精度の環境地図とのマッチングによって、作業車両100の位置が推定され得る。
本実施形態におけるGNSSユニット110は、さらにIMU115を備える。IMU115は、3軸加速度センサおよび3軸ジャイロスコープを備え得る。IMU115は、3軸地磁気センサなどの方位センサを備えていてもよい。IMU115は、モーションセンサとして機能し、作業車両100の加速度、速度、変位、および姿勢などの諸量を示す信号を出力することができる。処理回路116は、衛星信号および補正信号に加えて、IMU115から出力された信号に基づいて、作業車両100の位置および向きをより高い精度で推定することができる。IMU115から出力された信号は、衛星信号および補正信号に基づいて計算される位置の補正または補完に用いられ得る。IMU115は、GNSS受信機111よりも高い頻度で信号を出力する。その高頻度の信号を利用して、処理回路116は、作業車両100の位置および向きをより高い頻度(例えば、10Hz以上)で計測することができる。IMU115に代えて、3軸加速度センサおよび3軸ジャイロスコープを別々に設けてもよい。IMU115は、GNSSユニット110とは別の装置として設けられていてもよい。
カメラ120は、作業車両100の周囲の環境を撮影する撮像装置である。カメラ120は、例えば、CCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを備える。カメラ120は、他にも、一つ以上のレンズを含む光学系、および信号処理回路を備え得る。カメラ120は、作業車両100の走行中、作業車両100の周囲の環境を撮影し、画像(例えば動画)のデータを生成する。カメラ120は、例えば、3フレーム/秒(fps: frames per second)以上のフレームレートで動画を撮影することができる。カメラ120によって生成された画像は、例えば遠隔の監視者が端末装置400を用いて作業車両100の周囲の環境を確認するときに利用され得る。カメラ120によって生成された画像は、測位または障害物の検出に利用されてもよい。図2に示すように、複数のカメラ120が作業車両100の異なる位置に設けられていてもよいし、単数のカメラが設けられていてもよい。可視光画像を生成する可視カメラと、赤外線画像を生成する赤外カメラとが別々に設けられていてもよい。可視カメラと赤外カメラの両方が監視用の画像を生成するカメラとして設けられていてもよい。赤外カメラは、夜間において障害物の検出にも用いられ得る。
障害物センサ130は、作業車両100の周囲に存在する物体を検出する。障害物センサ130は、例えばレーザスキャナまたは超音波ソナーを含み得る。障害物センサ130は、障害物センサ130から所定の距離よりも近くに物体が存在する場合に、障害物が存在することを示す信号を出力する。複数の障害物センサ130が作業車両100の異なる位置に設けられていてもよい。例えば、複数のレーザスキャナと、複数の超音波ソナーとが、作業車両100の異なる位置に配置されていてもよい。そのような多くの障害物センサ130を備えることにより、作業車両100の周囲の障害物の監視における死角を減らすことができる。
ステアリングホイールセンサ152は、作業車両100のステアリングホイールの回転角を計測する。切れ角センサ154は、操舵輪である前輪104Fの切れ角を計測する。ステアリングホイールセンサ152および切れ角センサ154による計測値は、制御装置180による操舵制御に利用される。
車軸センサ156は、車輪104に接続された車軸の回転速度、すなわち単位時間あたりの回転数を計測する。車軸センサ156は、例えば磁気抵抗素子(MR)、ホール素子、または電磁ピックアップを利用したセンサであり得る。車軸センサ156は、例えば、車軸の1分あたりの回転数(単位:rpm)を示す数値を出力する。車軸センサ156は、作業車両100の速度を計測するために使用される。
駆動装置240は、前述の原動機102、変速装置103、操舵装置106、および連結装置108などの、作業車両100の走行およびインプルメント300の駆動に必要な各種の装置を含む。原動機102は、例えばディーゼル機関などの内燃機関を備え得る。駆動装置240は、内燃機関に代えて、あるいは内燃機関とともに、トラクション用の電動モータを備えていてもよい。
ブザー220は、異常を報知するための警告音を発する音声出力装置である。ブザー220は、例えば、自動運転時に、障害物が検出された場合に警告音を発する。ブザー220は、制御装置180によって制御される。
記憶装置170は、フラッシュメモリまたは磁気ディスクなどの一つ以上の記憶媒体を含む。記憶装置170は、GNSSユニット110、カメラ120、障害物センサ130、LiDARセンサ140、センサ群150、および制御装置180が生成する各種のデータを記憶する。記憶装置170が記憶するデータには、作業車両100が走行する環境内の地図データ(環境地図)、および自動運転のための大域的経路(目標経路)のデータが含まれ得る。環境地図は、作業車両100が農作業を行う複数の圃場およびその周辺の道の情報を含む。環境地図および目標経路は、管理装置600におけるプロセッサによって生成され得る。なお、本実施形態における制御装置180は、環境地図および目標経路を生成または編集する機能を備えている。制御装置180は、管理装置600から取得した環境地図および目標経路を、作業車両100の走行環境に応じて編集することができる。記憶装置170は、通信装置190が管理装置600から受信した作業計画のデータも記憶する。作業計画は、複数の作業日にわたって作業車両100が実行する複数の農作業に関する情報を含む。作業計画は、例えば、各作業日において作業車両100が実行する各農作業の予定時刻の情報を含む作業スケジュールのデータであり得る。記憶装置170は、制御装置180における各ECUに、後述する各種の動作を実行させるコンピュータプログラムも記憶する。そのようなコンピュータプログラムは、記憶媒体(例えば半導体メモリまたは光ディスク等)または電気通信回線(例えばインターネット)を介して作業車両100に提供され得る。そのようなコンピュータプログラムが、商用ソフトウェアとして販売されてもよい。
制御装置180は、複数のECUを含む。複数のECUは、例えば、速度制御用のECU181、ステアリング制御用のECU182、インプルメント制御用のECU183、自動運転制御用のECU184、経路生成用のECU185、および地図生成用のECU186を含む。
ECU181は、駆動装置240に含まれる原動機102、変速装置103、およびブレーキを制御することによって作業車両100の速度を制御する。
ECU182は、ステアリングホイールセンサ152の計測値に基づいて、操舵装置106に含まれる油圧装置または電動モータを制御することによって作業車両100のステアリングを制御する。
ECU183は、インプルメント300に所望の動作を実行させるために、連結装置108に含まれる3点リンクおよびPTO軸などの動作を制御する。ECU183はまた、インプルメント300の動作を制御する信号を生成し、その信号を通信装置190からインプルメント300に送信する。
ECU184は、GNSSユニット110、カメラ120、障害物センサ130、LiDARセンサ140、およびセンサ群150から出力されたデータに基づいて、自動運転を実現するための演算および制御を行う。例えば、ECU184は、GNSSユニット110、カメラ120、およびLiDARセンサ140の少なくとも1つから出力されたデータに基づいて、作業車両100の位置を特定する。圃場内においては、ECU184は、GNSSユニット110から出力されたデータのみに基づいて作業車両100の位置を決定してもよい。ECU184は、カメラ120またはLiDARセンサ140が取得したデータに基づいて作業車両100の位置を推定または補正してもよい。カメラ120またはLiDARセンサ140が取得したデータを利用することにより、測位の精度をさらに高めることができる。また、圃場外においては、ECU184は、LiDARセンサ140またはカメラ120から出力されるデータを利用して作業車両100の位置を推定する。例えば、ECU184は、LiDARセンサ140またはカメラ120から出力されるデータと、環境地図とのマッチングにより、作業車両100の位置を推定してもよい。自動運転中、ECU184は、推定された作業車両100の位置に基づいて、目標経路または局所的経路に沿って作業車両100が走行するために必要な演算を行う。ECU184は、ECU181に速度変更の指令を送り、ECU182に操舵角変更の指令を送る。ECU181は、速度変更の指令に応答して原動機102、変速装置103、またはブレーキを制御することによって作業車両100の速度を変化させる。ECU182は、操舵角変更の指令に応答して操舵装置106を制御することによって操舵角を変化させる。
ECU185は、作業車両100が目標経路に沿って走行している間、障害物を回避可能な局所的経路を逐次生成する。例えばECU185は、作業車両100の走行中、カメラ120、障害物センサ130、およびLiDARセンサ140から出力されたデータに基づいて、作業車両100の周囲に存在する農道および障害物を認識する。ECU185は、認識した障害物を回避するように局所的経路を農道上に生成する。ECU185は、管理装置600の代わりに大域的経路設計を行う機能を備えていてもよい。その場合、ECU185は、記憶装置170に格納された作業計画に基づいて作業車両100の移動先を決定し、作業車両100の移動の開始地点から目的地点までの目標経路を決定する。ECU185は、記憶装置170に格納された道路情報を含む環境地図に基づき、例えば最短の時間で移動先に到達できる経路を目標経路として作成することができる。
ECU186は、作業車両100が走行する環境の地図を生成または編集する。本実施形態では、管理装置600などの外部の装置によって生成された環境地図が作業車両100に送信され、記憶装置170に記録されるが、ECU186が代わりに環境地図を生成または編集することもできる。以下、ECU186が環境地図を生成する場合の動作を説明する。環境地図は、LiDARセンサ140から出力されたセンサデータに基づいて生成され得る。環境地図を生成するとき、ECU186は、作業車両100が走行している間にLiDARセンサ140から出力されたセンサデータに基づいて3次元の点群データを逐次生成する。ECU186は、例えばSLAMなどのアルゴリズムを利用して、逐次生成した点群データを繋ぎ合わせることにより、環境地図を生成することができる。このようにして生成された環境地図は、高精度の3次元地図であり、ECU184による自己位置推定に利用され得る。この3次元地図に基づいて、大域的経路計画に利用される2次元地図が生成され得る。本明細書では、自己位置推定に利用される3次元地図と、大域的経路計画に利用される2次元地図とを、いずれも「環境地図」と称する。ECU186は、さらに、カメラ120またはLiDARセンサ140から出力されたデータに基づいて認識された構造物、路面の状態、または道の通行可能性等に関する種々の属性情報を、地図に付加することによって地図を編集することもできる。
これらのECUの働きにより、制御装置180は、自動運転を実現する。自動運転時において、制御装置180は、計測または推定された作業車両100の位置と、目標経路とに基づいて、駆動装置240を制御する。これにより、制御装置180は、作業車両100を目標経路に沿って走行させることができる。
制御装置180に含まれる複数のECUは、例えばCAN(Controller Area Network)などのビークルバス規格に従って、相互に通信することができる。CANに代えて、車載イーサネット(登録商標)などの、より高速の通信方式が用いられてもよい。図3において、ECU181から186のそれぞれは、個別のブロックとして示されているが、これらのそれぞれの機能が、複数のECUによって実現されていてもよい。ECU181から186の少なくとも一部の機能を統合した車載コンピュータが設けられていてもよい。制御装置180は、ECU181から186以外のECUを備えていてもよく、機能に応じて任意の個数のECUが設けられ得る。各ECUは、一つ以上のプロセッサを含む処理回路を備える。
通信装置190は、インプルメント300、端末装置400、および管理装置600と通信を行う回路を含む装置である。通信装置190は、例えばISOBUS-TIM等のISOBUS規格に準拠した信号の送受信を、インプルメント300の通信装置390との間で実行する回路を含む。これにより、インプルメント300に所望の動作を実行させたり、インプルメント300から情報を取得したりすることができる。通信装置190は、さらに、ネットワーク80を介した信号の送受信を、端末装置400および管理装置600のそれぞれの通信装置との間で実行するためのアンテナおよび通信回路を含み得る。ネットワーク80は、例えば、3G、4Gもしくは5Gなどのセルラー移動体通信網およびインターネットを含み得る。通信装置190は、作業車両100の近くにいる監視者が使用する携帯端末と通信する機能を備えていてもよい。そのような携帯端末との間では、Wi-Fi(登録商標)、3G、4Gもしくは5Gなどのセルラー移動体通信、またはBluetooth(登録商標)などの、任意の無線通信規格に準拠した通信が行われ得る。
操作端末200は、作業車両100の走行およびインプルメント300の動作に関する操作をユーザが実行するための端末であり、バーチャルターミナル(VT)とも称される。操作端末200は、タッチスクリーンなどの表示装置、および/または一つ以上のボタンを備え得る。表示装置は、例えば液晶または有機発光ダイオード(OLED)などのディスプレイであり得る。ユーザは、操作端末200を操作することにより、例えば自動運転モードのオン/オフの切り替え、環境地図の記録または編集、目標経路の設定、およびインプルメント300のオン/オフの切り替えなどの種々の操作を実行することができる。これらの操作の少なくとも一部は、操作スイッチ群210を操作することによっても実現され得る。操作端末200は、作業車両100から取り外せるように構成されていてもよい。作業車両100から離れた場所にいるユーザが、取り外された操作端末200を操作して作業車両100の動作を制御してもよい。ユーザは、操作端末200の代わりに、端末装置400などの、必要なアプリケーションソフトウェアがインストールされたコンピュータを操作して作業車両100の動作を制御してもよい。
図5は、キャビン105の内部に設けられる操作端末200および操作スイッチ群210の例を示す図である。キャビン105の内部には、ユーザが操作可能な複数のスイッチを含む操作スイッチ群210が配置されている。操作スイッチ群210は、例えば、主変速または副変速の変速段を選択するためのスイッチ、自動運転モードと手動運転モードとを切り替えるためのスイッチ、前進と後進とを切り替えるためのスイッチ、およびインプルメント300を昇降するためのスイッチ等を含み得る。なお、作業車両100が無人運転のみを行い、有人運転の機能を備えていない場合、作業車両100が操作スイッチ群210を備えている必要はない。
図3に示すインプルメント300における駆動装置340は、インプルメント300が所定の作業を実行するために必要な動作を行う。駆動装置340は、例えば油圧装置、電気モータ、またはポンプなどの、インプルメント300の用途に応じた装置を含む。制御装置380は、駆動装置340の動作を制御する。制御装置380は、通信装置390を介して作業車両100から送信された信号に応答して、駆動装置340に各種の動作を実行させる。また、インプルメント300の状態に応じた信号を通信装置390から作業車両100に送信することもできる。
次に、図6を参照しながら、管理装置600および端末装置400の構成を説明する。図6は、管理装置600および端末装置400の概略的なハードウェア構成を例示するブロック図である。
管理装置600は、記憶装置650と、プロセッサ660と、ROM(Read Only Memory)670と、RAM(Random Access Memory)680と、通信装置690とを備える。これらの構成要素は、バスを介して相互に通信可能に接続される。管理装置600は、作業車両100が実行する圃場における農作業のスケジュール管理を行い、管理するデータを活用して農業を支援するクラウドサーバとして機能し得る。ユーザは、端末装置400を用いて作業計画の作成に必要な情報を入力し、その情報をネットワーク80を介して管理装置600に作業計画の情報をアップロードすることが可能である。管理装置600は、その情報に基づき、農作業のスケジュール、すなわち作業計画を作成することができる。管理装置600は、さらに、環境地図の生成または編集、および作業車両100の大域的経路計画も実行することができる。環境地図は、管理装置600の外部のコンピュータから配信されてもよい。
通信装置690は、ネットワーク80を介して作業車両100および端末装置400と通信するための通信モジュールである。通信装置690は、例えば、IEEE1394(登録商標)またはイーサネット(登録商標)などの通信規格に準拠した有線通信を行うことができる。通信装置690は、Bluetooth(登録商標)規格もしくはWi-Fi規格に準拠した無線通信、または、3G、4Gもしくは5Gなどのセルラー移動体通信を行ってもよい。
プロセッサ660は、例えば中央演算処理装置(CPU)を含む半導体集積回路であり得る。プロセッサ660は、マイクロプロセッサまたはマイクロコントローラによって実現され得る。あるいは、プロセッサ660は、CPUを搭載したFPGA(Field Programmable Gate Array)、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、ASSP(Application Specific Standard Product)、または、これら回路の中から選択される二つ以上の回路の組み合わせによっても実現され得る。プロセッサ660は、ROM670に格納された、少なくとも一つの処理を実行するための命令群を記述したコンピュータプログラムを逐次実行し、所望の処理を実現する。
ROM670は、例えば、書き込み可能なメモリ(例えばPROM)、書き換え可能なメモリ(例えばフラッシュメモリ)、または読み出し専用のメモリである。ROM670は、プロセッサ660の動作を制御するプログラムを記憶する。ROM670は、単一の記憶媒体である必要はなく、複数の記憶媒体の集合体であってもよい。複数の記憶媒体の集合体の一部は、取り外し可能なメモリであってもよい。
RAM680は、ROM670に格納された制御プログラムをブート時に一旦展開するための作業領域を提供する。RAM680は、単一の記憶媒体である必要はなく、複数の記憶媒体の集合体であってもよい。
記憶装置650は、主としてデータベースのストレージとして機能する。記憶装置650は、例えば、磁気記憶装置または半導体記憶装置であり得る。磁気記憶装置の例は、ハードディスクドライブ(HDD)である。半導体記憶装置の例は、ソリッドステートドライブ(SSD)である。記憶装置650は、管理装置600とは独立した装置であってもよい。例えば、記憶装置650は、管理装置600にネットワーク80を介して接続される記憶装置、例えばクラウドストレージであってもよい。
端末装置400は、入力装置420と、表示装置430と、記憶装置450と、プロセッサ460と、ROM470と、RAM480と、通信装置490とを備える。これらの構成要素は、バスを介して相互に通信可能に接続される。入力装置420は、ユーザからの指示をデータに変換してコンピュータに入力するための装置である。入力装置420は、例えば、キーボード、マウス、またはタッチパネルであり得る。表示装置430は、例えば液晶ディスプレイまたは有機ELディスプレイであり得る。プロセッサ460、ROM470、RAM480、記憶装置450、および通信装置490のそれぞれに関する説明は、管理装置600のハードウェア構成例において記載したとおりであり、それらの説明を省略する。
[2.動作]
次に、作業車両100、端末装置400、および管理装置600の動作を説明する。
[2-1.自動走行動作]
まず、作業車両100による自動走行の動作の例を説明する。本実施形態における作業車両100は、圃場内および圃場外の両方で自動で走行することができる。圃場内において、作業車両100は、予め設定された目標経路に沿って走行しながら、インプルメント300を駆動して所定の農作業を行う。作業車両100は、圃場内を走行中、障害物センサ130によって障害物が検出された場合、走行を停止し、ブザー220からの警告音の発出、および端末装置400への警告信号の送信などの動作を行う。圃場内において、作業車両100の測位は、主にGNSSユニット110から出力されるデータに基づいて行われる。一方、圃場外において、作業車両100は、圃場外の農道または一般道に設定された目標経路に沿って自動で走行する。作業車両100は、圃場外を走行中、カメラ120またはLiDARセンサ140によって取得されたデータに基づいて局所的経路設計を行いながら走行する。例えば、作業車両100は、圃場外を走行中、カメラ120またはLiDARセンサ140によって取得されたデータに基づいて農道を検出し、農道上に局所的経路を生成しながら走行することができる。圃場外において、作業車両100は、障害物が検出されると、障害物を回避するか、その場で停止する。圃場外においては、GNSSユニット110から出力される測位データに加え、LiDARセンサ140またはカメラ120から出力されるデータに基づいて作業車両100の位置が推定される。
以下、作業車両100が圃場内を自動走行する場合の動作をまず説明する。作業車両100が圃場外を自動走行する動作と、圃場外における大域的経路設計および局所的経路設計の処理については、後述する。
図7は、圃場内を目標経路に沿って自動で走行する作業車両100の例を模式的に示す図である。この例において、圃場は、作業車両100がインプルメント300を用いて作業を行う作業領域72と、圃場の外周縁付近に位置する枕地74とを含む。地図上で圃場のどの領域が作業領域72または枕地74に該当するかは、ユーザによって事前に設定され得る。この例における目標経路は、並列する複数の主経路P1と、複数の主経路P1を接続する複数の旋回経路P2とを含む。主経路P1は作業領域72内に位置し、旋回経路P2は枕地74内に位置する。図7に示す各主経路P1は直線状の経路であるが、各主経路P1は曲線状の部分を含んでいてもよい。図7における破線は、インプルメント300の作業幅を表している。作業幅は、予め設定され、記憶装置170に記録される。作業幅は、ユーザが操作端末200または端末装置400を操作することによって設定され、記録され得る。あるいは、作業幅は、インプルメント300を作業車両100に接続したときに自動で認識され、記録されてもよい。複数の主経路P1の間隔は、作業幅に合わせて設定され得る。目標経路は、自動運転が開始される前に、ユーザの操作に基づいて作成され得る。目標経路は、例えば圃場内の作業領域72の全体をカバーするように作成され得る。作業車両100は、図7に示すような目標経路に沿って、作業の開始地点から作業の終了地点まで、往復を繰り返しながら自動で走行する。なお、図7に示す目標経路は一例に過ぎず、目標経路の定め方は任意である。
次に、制御装置180による圃場内における自動運転時の制御の例を説明する。
図8は、制御装置180によって実行される自動運転時の操舵制御の動作の例を示すフローチャートである。制御装置180は、作業車両100の走行中、図8に示すステップS121からS125の動作を実行することにより、自動操舵を行う。速度に関しては、例えば予め設定された速度に維持される。制御装置180は、作業車両100の走行中、GNSSユニット110によって生成された作業車両100の位置を示すデータを取得する(ステップS121)。次に、制御装置180は、作業車両100の位置と、目標経路との偏差を算出する(ステップS122)。偏差は、その時点における作業車両100の位置と、目標経路との距離を表す。制御装置180は、算出した位置の偏差が予め設定された閾値を超えるか否かを判定する(ステップS123)。偏差が閾値を超える場合、制御装置180は、偏差が小さくなるように、駆動装置240に含まれる操舵装置の制御パラメータを変更することにより、操舵角を変更する。ステップS123において偏差が閾値を超えない場合、ステップS124の動作は省略される。続くステップS125において、制御装置180は、動作終了の指令を受けたか否かを判定する。動作終了の指令は、例えばユーザが遠隔操作で自動運転の停止を指示したり、作業車両100が目的地に到達したりした場合に出され得る。動作終了の指令が出されていない場合、ステップS121に戻り、新たに計測された作業車両100の位置に基づいて、同様の動作を実行する。制御装置180は、動作終了の指令が出されるまで、ステップS121からS125の動作を繰り返す。上記の動作は、制御装置180におけるECU182、184によって実行される。
図8に示す例では、制御装置180は、GNSSユニット110によって特定された作業車両100の位置と目標経路との偏差のみに基づいて駆動装置240を制御するが、方位の偏差もさらに考慮して制御してもよい。例えば、制御装置180は、GNSSユニット110によって特定された作業車両100の向きと、目標経路の方向との角度差である方位偏差が予め設定された閾値を超える場合に、その偏差に応じて駆動装置240の操舵装置の制御パラメータ(例えば操舵角)を変更してもよい。
以下、図9Aから図9Dを参照しながら、制御装置180による操舵制御の例をより具体的に説明する。
図9Aは、目標経路Pに沿って走行する作業車両100の例を示す図である。図9Bは、目標経路Pから右にシフトした位置にある作業車両100の例を示す図である。図9Cは、目標経路Pから左にシフトした位置にある作業車両100の例を示す図である。図9Dは、目標経路Pに対して傾斜した方向を向いている作業車両100の例を示す図である。これらの図において、GNSSユニット110によって計測された作業車両100の位置および向きを示すポーズがr(x,y,θ)と表現されている。(x,y)は、地球に固定された2次元座標系であるXY座標系における作業車両100の基準点の位置を表す座標である。図9Aから図9Dに示す例において、作業車両100の基準点はキャビン上のGNSSアンテナが設置された位置にあるが、基準点の位置は任意である。θは、作業車両100の計測された向きを表す角度である。図示されている例においては、目標経路PがY軸に平行であるが、一般的には目標経路PはY軸に平行であるとは限らない。
図9Aに示すように、作業車両100の位置および向きが目標経路Pから外れていない場合には、制御装置180は、作業車両100の操舵角および速度を変更せずに維持する。
図9Bに示すように、作業車両100の位置が目標経路Pから右側にシフトしている場合には、制御装置180は、作業車両100の走行方向が左寄りに傾き、経路Pに近付くように操舵角を変更する。このとき、操舵角に加えて速度も併せて変更してもよい。操舵角の大きさは、例えば位置偏差Δxの大きさに応じて調整され得る。
図9Cに示すように、作業車両100の位置が目標経路Pから左側にシフトしている場合には、制御装置180は、作業車両100の走行方向が右寄りに傾き、経路Pに近付くように操舵角を変更する。この場合も、操舵角に加えて速度も併せて変更してもよい。操舵角の変化量は、例えば位置偏差Δxの大きさに応じて調整され得る。
図9Dに示すように、作業車両100の位置は目標経路Pから大きく外れていないが、向きが目標経路Pの方向とは異なる場合は、制御装置180は、方位偏差Δθが小さくなるように操舵角を変更する。この場合も、操舵角に加えて速度も併せて変更してもよい。操舵角の大きさは、例えば位置偏差Δxおよび方位偏差Δθのそれぞれの大きさに応じて調整され得る。例えば、位置偏差Δxの絶対値が小さいほど方位偏差Δθに応じた操舵角の変化量を大きくしてもよい。位置偏差Δxの絶対値が大きい場合には、経路Pに戻るために操舵角を大きく変化させることになるため、必然的に方位偏差Δθの絶対値が大きくなる。逆に、位置偏差Δxの絶対値が小さい場合には、方位偏差Δθをゼロに近づけることが必要である。このため、操舵角を決定するための方位偏差Δθの重み(すなわち制御ゲイン)を相対的に大きくすることが妥当である。
作業車両100の操舵制御および速度制御には、PID制御またはMPC制御(モデル予測制御)などの制御技術が適用され得る。これらの制御技術を適用することにより、作業車両100を目標経路Pに近付ける制御を滑らかにすることができる。
なお、走行中に一つ以上の障害物センサ130によって障害物が検出された場合には、制御装置180は、作業車両100を停止させる。このとき、ブザー220に警告音を発出させたり、警告信号を端末装置400に送信してもよい。障害物の回避が可能な場合、制御装置180は、障害物を回避するように駆動装置240を制御してもよい。
本実施形態における作業車両100は、圃場内だけでなく、圃場外でも自動走行が可能である。圃場外において、制御装置180は、カメラ120またはLiDARセンサ140から出力されたデータに基づいて、作業車両100から比較的離れた位置に存在する物体(例えば、他の車両または歩行者等)を検出することができる。制御装置180は、検出された物体を回避するように局所的経路を生成し、局所的経路に沿って速度制御および操舵制御を行うことにより、圃場外の道における自動走行を実現できる。
このように、本実施形態における作業車両100は、無人で圃場内および圃場外を自動で走行できる。図10は、複数の作業車両100が圃場70の内部および圃場70の外側の道76を自動走行している状況の例を模式的に示す図である。記憶装置170には、複数の圃場およびその周辺の道を含む領域の環境地図および目標経路が記録される。環境地図および目標経路は、管理装置600またはECU185によって生成され得る。作業車両100が道路上を走行する場合、作業車両100は、インプルメント300を上昇させた状態で、カメラ120およびLiDARセンサ140などのセンシング装置を用いて周囲をセンシングしながら、目標経路に沿って走行する。走行中、制御装置180は、局所的経路を逐次生成し、局所的経路に沿って作業車両100を走行させる。これにより、障害物を回避しながら自動走行することができる。走行中に、状況に応じて目標経路が変更されてもよい。
[2-2.農道か否かの識別]
本実施形態における作業車両100のセンシング装置と作業車両100の制御装置180とは、協働して、作業車両100のための農道識別システムとして機能する。農道識別システムは、作業車両100が走行しようとする道が農道か否かを識別することができる。農道識別システムは、主に、作業車両100が圃場外を自動で走行している間に用いられる。農道識別システムは、農道か否かを識別し、農道に沿って局所的経路を生成する動作を実行することができる。農道識別システムは、作業車両100が圃場外を手動で走行している間に農道を識別し、農道の位置および幅に関するデータを収集してもよい。収集されたデータは、農道に関する詳細な情報を含む地図を生成する用途で用いられてもよい。
作業車両100のセンシング装置は、例えば図2の例では、複数のカメラ120と、LiDARセンサ140と、複数の障害物センサ130とを含む。これに限られず、作業車両100のセンシング装置は、カメラ120、障害物センサ130、およびLiDARセンサ140の少なくとも1つを含み得る。作業車両100が有するセンシング装置の少なくとも1つを、農道識別システムにおけるセンシング装置として用いることができる。なお、農道識別システムが有するセンシング装置として、ここでは作業車両100に備え付けられたセンシング装置を用いる例を説明するが、この例に限られない。例えば作業車両100とは異なる農業機械、またはドローン(無人航空機、Unmanned Arial Vehicle:UAV)などの他の移動体が有するセンシング装置を農道識別システムのセンシング装置として用いてもよい。
センシング装置は、作業車両100が走行する地面(例えば作業車両100の進行方向側に位置する地面)をセンシングして地面に関するセンシングデータを取得する。このセンシングデータを「第1センシングデータ」ということがある。また、センシング装置は、作業車両100の周辺の環境をセンシングして地面以外の地物をも含む周辺環境に関するセンシングデータを取得する。このセンシングデータを「第2センシングデータ」ということがある。第1センシングデータと第2センシングデータとは、同じセンシング装置によって取得されたものであってもよいし、異なるセンシング装置によって取得されたものであってもよい。例えば、カメラ120によって第1センシングデータを取得し、LiDARセンサ140によって第2センシングデータを取得してもよいし、その逆であってもよい。あるいは、カメラ120およびLiDARセンサ140の両方を用いて第1センシングデータおよび第2センシングデータの一方または両方を取得してもよい。カメラ120によって取得された第1センシングデータは、作業車両100が走行する地面の画像データを含み得る。LiDARセンサ140によって取得された第1センシングデータは、作業車両100が走行する地面の点群データを含み得る。同様に、カメラ120によってセンシングされて取得された第2センシングデータは、作業車両100の周辺の環境の画像データを含み得る。LiDARセンサ140によってセンシングされて取得された第2センシングデータは、作業車両100の周辺の環境の点群データを含み得る。
作業車両100の制御装置180は、第1センシングデータおよび第2センシングデータに基づいて、作業車両100が走行しようとする道が農道か否かを識別する処理装置として機能する。なお、ここでは、制御装置180が農道識別システムの処理装置として機能する例を説明するが、農道識別システムにおいて制御装置180が実行する処理の一部または全部は、他の装置によって実行されてもよい。そのような他の装置は、管理装置600(プロセッサ660)、端末装置400(プロセッサ460)および操作端末200のいずれかであってもよい。例えば、制御装置180が実行する処理の一部が、管理装置600のプロセッサ660によって実行される場合、制御装置180と管理装置600との組み合わせが農道識別システムの処理装置として機能する。また、ここでは、制御装置180が有する経路生成用のECU185が農道識別システムの処理装置として機能する例を説明するが、制御装置180が有する他のECUによって農道識別処理が実行されてもよい。制御装置180は、ECU181~186に加えて、農道か否かを識別するためのECUをさらに有してもよい。
制御装置180は、第1センシングデータに基づいて、作業車両100が走行する地面の横断プロファイル(transverse profile)に関する情報を取得する。制御装置180はまた、第2センシングデータに基づいて、作業車両100の周辺の環境に関する情報を取得する。作業車両100が走行する地面の横断プロファイルに関する情報を「第1情報」ということがあり、作業車両100の周辺の環境に関する情報を「第2情報」ということがある。
作業車両100が走行する地面の横断プロファイルは、作業車両100が走行する方向に交差する方向(以下、「横断方向」ともいう)における、地面(すなわち地表面)の形状をいう。横断プロファイルは、例えば、横軸が横断方向における走査ライン上における位置、縦軸が基準面に対する地面の距離(すなわち高さまたは深さ)を表すグラフ、またはそのようなグラフの情報を含むテーブルのデータとして取得され得る。「基準面」は、例えば水平面であるが、地面が全体として傾斜しているときは、傾斜面であってもよい。基準面から地面までの距離は、センシング装置が測距性能を有している場合には、センシング装置の位置情報と、センシング装置から走査ライン上の地面までの距離を測定することによって取得された情報とに基づいて算出可能である。そのような測距性能を有するセンシング装置の例は、デプスカメラ、LiDARセンサ、およびレーザ干渉測定器を含む。また、センシング装置が測距機能を有しないカメラの場合、画像処理技術により、カメラが取得した画像から走査ライン上の地面の高さまたは深さを推定してもよい。制御装置180は、横断プロファイルを求める際、例えば作業車両100のIMU115を用いて作業車両100の傾斜角またはセンシング装置の傾斜角を測定(または推定)し、その傾斜角を用いて第1センシングデータを補正することによって横断プロファイルを取得してもよい。制御装置180は、横断プロファイルを示す第1情報を含む信号(横断プロファイル信号ともいう)を、例えば一定時間ごと、または作業車両100が一定距離進むごとに生成し、記憶装置170に記録してもよい。横断プロファイル信号の2つの連続した記録の縦断方向(作業車両100が走行する方向に相当)における間隔に対応する距離(反復間隔ともいう)、すなわち、走査ラインの間隔は、例えば1cmから50cmの範囲内の任意の値に設定され得る。
なお、横断プロファイルは、必ずしも基準面に対する地面の正確な高さまたは深さに関する情報を有している必要はない。横断プロファイルは、凹凸のサイズに応じて、例えば「凹凸の大きな粗領域」、「凹凸の小さな粗領域」、「ほぼ平坦な領域」のように凹凸のサイズを大まかに示す情報を含んでいてもよい。
また、横断プロファイルは、横断勾配、すなわち、作業車両100が走行する方向に交差する方向における、地面の勾配の情報を含んでいてもよい。横断勾配は、例えば、道の右端と左端における地面の高さの差を道の幅で割った値である。各走査ラインを複数の領域に区分し、各領域の両端における地面の高さの差を各領域の幅で割った値を部分的な横断勾配として決定してもよい。制御装置180は、第1センシングデータに基づいて、作業車両100が走行しようとする道の走行可能な領域の幅(すなわち横断方向の長さ)を検出してもよい。各走査ラインのうち走行可能領域に対応する領域を用いて、その領域の両端における地面の高さの差を走行可能領域の幅で割った値を走行可能領域の横断勾配として決定してもよい。
なお、作業車両100が走行する地面の横断プロファイルに関する情報(第1情報)は、横断方向以外の方向の走査ライン上のデータを含んでいてもよい。本開示において、横断方向における地面(地表面)のプロファイルを含む限り、その情報を第1情報という。
制御装置180は、例えば、作業車両100が所定の距離(例えば1メートル以上)を走行するごとに地面の横断プロファイルを取得してもよい。その場合、制御装置180は、センシング装置に、作業車両100が所定の距離を走行するごとに第1センシングデータを取得させてもよい。
制御装置180は、第1センシングデータに基づいて、地面の横断プロファイルに加えて、地面の縦断プロファイル(longitudinal profile)、すなわち、作業車両100が走行する方向に沿った方向における、地面の形状をさらに取得してもよい。
作業車両100の周辺の環境に関する情報(第2情報)は、作業車両100の周辺の地面以外の地物を含み得る環境に関する情報である。第2情報は、例えば、作業車両100の周辺に存在する物に関する情報(例えば物の位置、種別などを含む)である。例えば、制御装置180は、第2センシングデータに基づいて、作業車両100の周辺に存在する1または複数の物体を認識することによって第2情報を得ることができる。制御装置180は、さらに、認識された物体の種別を識別してもよい。制御装置180は、物体の認識および物体の種別の識別に機械学習を用いてもよい。例えば、制御装置180は、畳み込みニューラルネットワーク(CNN)を利用したセマンティックセグメンテーションなどの識別技術を利用して、画像データなどの第2センシングデータから物体の種別を識別してもよい。識別のアルゴリズムは特定のものに限定されず、任意のアルゴリズムを使用することができる。
制御装置180は、作業車両100が走行する地面の横断プロファイルに関する情報および作業車両100の周辺の環境に関する情報に基づいて、作業車両100が走行する地面にある道が農道か否かを識別する。制御装置180は、例えば、作業車両100が走行する地面の横断プロファイルに関する情報および作業車両100の周辺の環境に関する情報が1または複数の条件を満たすか否かを判定することによって、作業車両100が走行する地面にある道が農道か否かを識別する。判定条件は、予め定められており、例えば、作業車両100が有する記憶装置170、管理装置600の記憶装置650、または端末装置400の記憶装置450等に記録され得る。判定条件をユーザが設定できるようにしてもよい。判定条件の具体例は後述する。
本実施形態における農道識別システムは、農業機械が走行する地面のセンシングデータおよび農業機械の周辺の環境のセンシングデータに基づいて、農業機械が走行しようとする道が農道か否かを識別することができるので、農業機械が走行しようとする道が農道か否かの識別を、多様な環境で行うことができる。例えば、その道の道路種別に関する情報が環境地図または高度道路交通システムから得られない場合であっても、農業機械が走行する地面および農業機械の周辺の環境のセンシングデータを用いて、その道が農道か否かを識別することができる。農道か否かの識別を多様な環境で行うことができるので、自動運転を行う農業機械の走行がよりスムーズに行われ得る。「農道か否かを識別すること」は、言い換えると、例えば、一般道と区別して認識すべき道であるか否かを判定することをいう。一般道は、一般の車両の交通のために整備された道路である。
「農道」は、既に述べたように、主に農業目的で利用される道をいう。農道は、圃場内農道と基幹的農道とに大別されることがある。圃場内農道は、主に農業生産活動に用いられる農道であり、例えば、圃場への往来、農業資材の圃場への搬入、農産物の収穫、防除作業、圃場からの農産物の搬出等のために用いられる農道等を含む。圃場内農道は、例えば、圃場と圃場とを結ぶ道、圃場と集落とを結ぶ道、圃場と農業施設(例えば、集出荷場、選果場、ライスセンター、カントリーエレベーター、堆肥センター等)とを結ぶ道等を含む。基幹的農道は、農村地域の基幹的な農道であり、主に農産物や農業資材の流通のために用いられる。基幹的農道は、例えば、農産物を市場や消費地へ輸送する目的で利用される道を含む。基幹的農道は、例えば、農業施設と一般道とを結ぶ道を含む。
ただし、本開示の実施形態による農道識別システムが農道として識別する基準は、適宜調節可能である。すなわち、上記の「農道」に当てはまる全てを農道として識別する必要はない。例えば、上記の「農道」のうち、未舗装の農道または幅が狭い農道等、一般道に比べて十分に整備されていない農道を一般道と区別して認識できることが好ましい。
さらに、本実施形態における農道識別システムは、農業機械の種類(農業機械がインプルメントを装着している場合は、インプルメントの種類も含む)に応じて、農道として識別する基準を調節することができるという利点も有する。あるいは、農道識別システムは、農業機械またはインプルメントの特性(例えば、幅、高さ、重量、または馬力等)に応じて、農道識別の基準を調節することができ得る。
本実施形態の農道識別システムは、農道の外観的な特徴を利用して、具体的には農業機械が走行する地面の横断プロファイルに関する情報と農業機械の周辺の環境に関する情報とに基づいて、農道か否かを識別するので、農道として識別する基準をニーズに応じて適宜調節することができる。農道識別システムは、ユーザが操作端末200または端末装置400を操作することによって農道識別の基準を変更できるように構成されていてもよい。
本実施形態における農道識別システムは、例えば局所的経路設計の際に農道を識別する動作を実行するように構成され得る。制御装置180は、局所的経路設計と農道か否かの識別とを並行して行ってもよいし、局所的経路設計の前に農道か否かの識別を行ってもよい。制御装置180は、作業車両100が走行しようとする道が農道であると判定したとき、作業車両100が走行する地面のセンシングデータおよび作業車両100の周辺の環境のセンシングデータに基づいて、作業車両100の局所的経路を設定してもよい。例えば、制御装置180は、作業車両100が走行しようとする道が農道であると判定したとき、農道上の適切な位置(例えば横断方向における中心付近)にウェイポイントを設定して局所的経路を設定してもよい。制御装置180は、作業車両100が走行しようとする道が農道であると判定したとき、作業車両100が走行する地面のセンシングデータおよび/または地面の横断プロファイルに基づいて、作業車両100が走行しようとする道の走行可能な領域(例えば横断方向における当該領域の幅)を検出してもよい。走行可能領域は、例えば道にある障害物を避けて設定することができる。障害物に加えて、例えば大きい凹凸または段差、ぬかるみ等、作業車両100が走行を避けることが好ましい領域も除くことによって走行可能領域を設定してもよい。制御装置180は、作業車両100が走行する地面のセンシングデータに基づいて、地面に形成された轍(すなわち車輪が通った跡)を検出してもよい。轍は、例えば、道が延びる方向に沿って延びる凹部(くぼみ)として地面に形成されている。制御装置180は、轍を検出したとき、轍に沿って局所的経路を設定してもよい。制御装置180は、地面に2つの轍が検出された場合、轍と轍の間の距離と、2つの前輪104Fの間の距離とを比較し、これらの距離の差が無視できる程度に小さい場合は轍の上を前輪104Fが走行するように、距離の差が大きい場合は轍の上を避けて前輪104Fが走行するように、局所的経路を設定してもよい。
制御装置180は、作業車両100が走行しようとする道が農道であると判定したとき、作業車両100の周辺の環境のセンシングデータから、圃場の出入口、溝および農業施設の少なくとも1つの特徴点を検出し、その特徴点を用いて作業車両100の経路にランドマークを設定してもよい。設定されたランドマークは、自己位置推定のために利用され得る。
制御装置180は、農道か否かを識別した結果を示す情報を地図に反映させてもよい。例えば、制御装置180は、既存の地図における特定の道が農道であることを示す属性情報を地図に付加してもよい。制御装置180はまた、既存の地図における農道の位置および幅が不正確である場合、識別した農道の位置および幅の情報に基づいて既存の地図における農道の位置および幅を修正してもよい。
制御装置180は、作業車両100の振動の程度に関する情報(第3情報ということがある。)をさらに用いて、農道か否かの識別を行ってもよい。例えば、制御装置180は、作業車両100の振動を検知するセンサ(例えば作業車両100が有する加速度センサ)から出力された信号に基づいて、作業車両100の振動の程度に関する情報(例えば、作業車両100の振動波形の周波数(振動数)特性、振動加速度等)を取得することができる。制御装置180は、例えば、作業車両100の加速度センサから振動波形を取得し、地面の凹凸以外に起因する成分(例えば作業車両100の加速度等)を除去するためのフィルタリングを行ってもよい。このようなフィルタリングを行うことで、振動波形を地面の凹凸の評価に用いることができる。フィルタリングに機械学習を用いてもよい。
制御装置180は、作業車両100が走行する地面にある道が農道であると判定したとき、作業車両100の車幅および/または長さに基づいて、作業車両100がその道を走行可能か否かの判定をさらに行ってもよい。ここで例示している作業車両100は、インプルメントを装着可能なトラクタである。作業車両100がインプルメントを装着している場合、制御装置180は、装着されているインプルメントの車幅および/または長さに基づいて、作業車両100がその道を走行可能か否かを判定することができる。作業車両100の車幅および長さは例えば作業車両100の記憶装置170に記録されている。作業車両100に装着されているインプルメントの車幅および長さも同様に、例えば作業車両100の記憶装置170に記録されている。インプルメントを作業車両100に接続したときに自動で認識され、記録されてもよい。
制御装置180は、作業車両100が走行する地面にある道が農道か否かを識別した結果に基づいて、作業車両100の制御方法を異ならせることができる。例えば、制御装置180は、作業車両100が走行しようとする道が農道と識別されたときと、農道でないと識別されたときとで、異なる方法で駆動装置240を制御してもよい。例えば、制御装置180は、作業車両100が走行しようとする道が農道と識別されたときは、農道でないと識別されたときよりも、作業車両100の速度を小さくしてもよい。
制御装置180は、作業車両100がその道を走行できないと判定したとき、作業車両100の走行を停止させる。制御装置180は、作業車両100がその道を走行できないと判定したとき、作業車両100を遠隔で監視するコンピュータに作業車両100がその道を走行できないことを通知してもよい。例えば、制御装置180は、端末装置400に信号を送信して、遠隔で作業車両100を監視するユーザに知らせてもよい。ユーザは、例えば、端末装置400を介して作業車両100を遠隔で操作することができる。
図11は、本実施形態における農道識別システムを用いた経路計画および走行制御の動作の例を示すフローチャートである。図11の例では、局所的経路設計の前に、農道か否かの識別が行われる。
図11に示す例において、管理装置600は、まず、記憶装置650から地図および作業計画を取得する(ステップS141)。次に、管理装置600は、地図および作業計画に基づいて、前述の方法により、作業車両100の大域的経路設計を行う(ステップS142)。大域的経路設計は、作業車両100の走行を開始する前の任意のタイミングで行われ得る。大域的経路設計は、作業車両100の走行開始の直前に行われてもよいし、走行開始の前日以前に行われてもよい。また、大域的経路は、ユーザが端末装置400を用いて入力した情報(例えば、出発地点、目的地点、経由地点等)に基づいて生成されてもよい。管理装置600は、生成した大域的経路を示すデータを作業車両100に送信する。その後、管理装置600は、所定のタイミングで、作業車両100に走行の指示を出す。これを受けて、作業車両100の制御装置180は、作業車両100の走行を開始するように駆動装置240を制御する(ステップS143)。これにより、作業車両100は走行を開始する。走行開始のタイミングは、例えば、作業計画が示す各作業日における最初の農作業の開始予定時刻までに作業車両100が圃場に到達できる適切なタイミングに設定され得る。作業車両100の走行中、制御装置180のECU185は、作業車両100が走行しようとする道が農道か否かの識別を行う(ステップS144)。農道であると判定されたとき、制御装置180のECU185は、その道を走行可能か否かの判定を行う(ステップS145)。走行可能であると判定されたとき、制御装置180のECU185は、後述の方法により、障害物との衝突を回避するための局所的経路設計を行う(ステップS146)。農道か否かを識別した(ステップS144)結果、農道でないと判定されたときは、走行可能か否かの判定(ステップS145)を行わずに局所的経路設計(ステップS146)を行ってもよい。障害物が検出されなかった場合、ECU185は、大域的経路にほぼ平行に局所的経路を生成し、障害物が検出された場合、ECU185は、障害物を回避可能な局所的経路を生成する。続いて、ECU184は、作業車両100の走行を終了させるか否かを判定する(ステップS147)。例えば、障害物を回避できる局所的経路を生成できなかった場合、または、作業車両100が目的地点に到着した場合、ECU184は、作業車両100を停止させる(ステップS148)。走行可能でないと判定されたときも、ECU184は、作業車両100を停止させる(ステップS148)。障害物が検出されなかった場合、または障害物を回避可能な局所的経路が生成できた場合は、ステップS143に戻り、以後、ステップS148において走行を終了すると判断されるまで、ステップS143からS148の動作が繰り返される。
作業車両100の走行中、制御装置180は、所定のタイミングで、作業車両100が走行しようとする道が農道か否かの識別を行ってもよい。例えば、制御装置180は、作業車両100の加速度センサから振動波形を取得し、地面の凹凸以外に起因する成分(例えば作業車両100の加速度等)を除去するためのフィルタリングを行い、得られた振動波形から、振動の程度(振動の周波数特性等)を評価してもよい。制御装置180は、振動の程度を表す指標値が予め定められた所定値よりも大きいか否かを判定し、振動の程度が所定値よりも大きいことをトリガーとして、作業車両100が走行しようとする道が農道か否かの識別を行ってもよい。
農道識別システムの適用例は、図11の例に限られない。例えば、大域的経路の設定において、作業計画を用いなくてもよい。農道識別システムは、農道か否かの情報を含む地図の作成のために用いることもできる。
図12は、農道か否かを識別する方法の例を示すフローチャートである。この例では、制御装置180は、作業車両100が走行する地面の横断プロファイルに関する情報(第1情報)が少なくとも1つの第1条件を満たし、かつ、作業車両100の周辺の環境に関する情報(第2情報)が少なくとも1つの第2条件を満たすとき、作業車両100が走行しようとする道が農道であると判定する。制御装置180は、第1情報および第2情報を取得する(ステップS151)。制御装置180は、第1情報が第1条件を満たすか否かを判定する(ステップS152)。第1情報が第1条件を満たすと判定されたとき、制御装置180は、第2情報が第2条件を満たすか否かを判定する(ステップS153)。第2情報が第2条件を満たすと判定されたとき、農道であると判定する(ステップS154)。第1情報が第1条件を満たさないと判定されたときおよび第2情報が第2条件を満たさないと判定されたとき、制御装置180は、農道でないと判定する(ステップS155)。
図12の例に限られず、例えば、制御装置180は、第1情報が第1条件を満たすと判定されたときのみ、第2情報を取得してもよい。第1情報が第1条件を満たすか否かの判定(ステップS152)と、第2情報が第2条件を満たすか否かの判定(ステップS153)と順序は逆であってもよい。
(農道か否かの判定条件の具体例)
農道か否かの判定条件の具体例を、図13Aおよび図13Bを参照しながら説明する。図13Aおよび図13Bは、作業車両100のカメラ120が取得した画像の例に対応するモノクロ画像を示す図である。これらの図は、作業車両100が走行する地面および作業車両100の周囲の環境を含む画像を例示している。制御装置180は、例えば以下で例示する判定条件に従って農道を識別することができる。以下で例示する判定条件は、組み合わせて用いることもできる。
第1条件は、例えば、道が延びる方向に沿って延びる轍が、作業車両100が走行する地面に形成されていることが反映された条件を含む。例えば図13Aおよび図13Bの例では、道が延びる方向に沿って延びる2つの轍24が形成されている。2つの轍24は互いに略平行に延びている。2つの轍24の間には、道が延びる方向に沿って延びる凸部が形成され得る。図13Aおよび図13Bの例のように舗装されていない農道には、轍が形成されていることがある。さらに、2つの轍の間の凸部上または凸部に沿って草が生えていることもある。このような轍を農道の特徴の1つとして検出し、農道か否か識別する条件として用いることができる。
具体的には、第1条件は、例えば、連続する複数の横断プロファイルの対応する位置に凹部を示す部分が含まれているという条件を含む。第1条件は、例えば、連続する複数の横断プロファイルの対応する位置に2つの凹部を示す部分が含まれているという条件を含んでもよい。制御装置180は、連続する複数の横断プロファイルからこのような凹部が検出された後、検出された凹部が轍に分類されるか否かの判定をさらに行ってもよい。凹部が轍に分類されるか否の判定には、例えば地面の画像データを用いることができる。
第1条件は、2つの凹部の間に凸部が形成されているという条件をさらに含んでもよい。第1条件は、凸部上または凸部に沿って草が生えているという条件をさらに含んでもよい。草の検出は、例えば、カメラ120によって取得された地面のカラー画像データのRGB値を用いて緑色の画素を検出することによって行ってもよい。RGB色空間をHSV色空間に変換し、HSV色空間を利用して緑色の画素の検出を行ってもよい。HSV色空間は、色相(Hue)、彩度(Saturation)、明度(Value)の3つの成分によって構成される色空間である。緑色の画素を検出する場合、色相の範囲を例えば30~90の範囲に設定すればよい。
第1条件の他の例として、例えば、道が延びる方向に交差する方向における地面の勾配(傾き)が所定の値よりも大きいという条件を含んでいてもよい。例えば、図13Bの例のように、道の片側に林26がある場合、道が延びる方向に交差する方向における道の傾きが大きいことがある。第1条件は、例えば、地面の横断プロファイルの傾きが所定値よりも大きいという条件を含む。
第1条件は、道のラフネスに関する条件を含んでもよい。例えば舗装路面の縦断方向における凹凸の評価指数として、IRI(国際ラフネス指数;International Roughness Index)が用いられている。未舗装の農道は、一般道に比べて、縦断方向における凹凸が大きいことが考えられる。制御装置180は、道の縦断プロファイルを取得し、縦断プロファイルからIRIを求めて道の凹凸の程度(ラフネス)を評価してもよい。第1条件は、道の凹凸の程度が所定値よりも大きいという条件を含んでもよい。
第2条件は、例えば、道に隣接して、道の両側または片側に、圃場、畦道、林および草木からなる群の少なくとも1つが存在するという条件を含む。圃場、畦道、林および草木のいずれかが道に隣接して存在するということを農道の特徴の1つとして検出し、農道か否か識別する条件の1つとして用いる。例えば、図13Aの例では、道の両側に、道に隣接して圃場22が存在し、図13Bの例では、道に隣接して、道の片側には圃場22が存在する。制御装置180は、例えば、作業車両100の周辺の環境をセンシングして取得したセンシングデータから、道を検出するとともに、道に隣接して、道の両側または片側に存在する物体を認識し、認識した物体の種別を識別する。
図13C、図13Dおよび図13Eは、作業車両100が本実施形態における農道識別システムを用いながら圃場外の道20を自動で走行している様子の例を模式的に示す平面図である。
図13Cに示すように、道20の区間A1においては、道20が延びる方向(この例では図の上下方向)に沿って延びる2つの轍24が形成されており、且つ、道20に隣接して、道20の両側に圃場22が存在する。例えばここでは制御装置180は、図12のフローチャートに示した方法に沿って農道か否かの識別を行うとする。道20の区間A1では、第1情報が第1条件を満たし、且つ、第2情報が第2条件を満たすので、制御装置180は道20が農道であると判断する。一方、図13Dに示すように、道20の区間A2では、作業車両100が走行する地面には轍に対応する凹凸が形成されず、且つ、道20に隣接して、道20の両側に圃場22が存在する。従って、道20の区間A2では、第2情報が第2条件を満たすものの、第1情報が第1条件を満たさないため、制御装置180は、道20は農道ではないと判断する。
農道か否かの識別を行う方法は、上述した例に限られない。図13Eおよび図13Fを参照しながら、農道か否かの識別を行う方法の他の例を説明する。図13Fは、農道か否かを識別する方法の他の例を示すフローチャートである。図12のフローチャートと異なる点を主に説明する。
例えば、図13Eに示すように、互いに連続する道20の区間A10、A11およびA12において、道20が延びる方向に沿って延びる2つの轍24が形成されている。道20の区間A10および区間A12では、道20に隣接して、道20の少なくとも片側に圃場22が存在するので、制御装置180は、第1情報が第1条件を満たし、且つ、第2情報が第2条件を満たすので、道20は農道であると判断する。一方、区間A10に続く区間A11では、道20に隣接して、道20の両側のどちらにも圃場、畦道、林および草木のいずれも存在しない。ここでは代わりに構造物(建物)29が存在する。従って、区間A11では、第1情報が第1条件を満たしているものの、第2情報が第2条件を満たさない。このとき、制御装置180は、区間A11の前の区間A10で道20が農道であると最後に判断してから作業車両100が走行した距離を参照し(ステップS153a)、参照した距離が予め定められた距離以下(例えば、100m以下)であるか否かを判定し(ステップS153b)、予め定められた距離以下である場合、道20が農道であると判断する。すなわち、制御装置180は、第1情報が第1条件を満たし且つ第2情報が第2条件を満たしている状態から、第1情報が第1条件を満たし且つ、第2情報が第2条件を満たさない状態に変化した場合、第2情報が第2条件を満たさない状態で作業車両100が走行した距離が所定の距離以下であれば、道が農道であると判断する。
[2-3.障害物の回避]
管理装置600は、大域的経路を生成し、生成された大域的経路の情報は、作業車両100に送信され、記憶装置170に記憶される。自動運転制御を行うECU184は、大域的経路に沿って作業車両100が走行するように、ECU181および182を制御する。これにより、作業車両100は、大域的経路に沿って走行を開始する。
作業車両100が圃場外を走行しているとき、大域的経路上またはその付近に、歩行者または他の車両などの障害物が存在することがある。作業車両100が障害物に衝突することを回避するために、制御装置180におけるECU185は、作業車両100の走行中、障害物を回避可能な局所的経路を逐次生成する。ECU185は、作業車両100が走行しているとき、作業車両100が備えるセンシング装置(障害物センサ130、LiDARセンサ140、およびカメラ120等)によって取得されたセンシングデータに基づいて、局所的経路を生成する。局所的経路は、大域的経路の一部に沿った複数のウェイポイントによって規定される。ECU185は、センシングデータに基づいて、作業車両100の進路上またはその付近に障害物が存在するか否かを判断する。そのような障害物が存在する場合、ECU185は、障害物を避けるように複数のウェイポイントを設定して局所的経路を生成する。障害物が存在しない場合、ECU185は、大域的経路にほぼ平行に局所的経路を生成する。生成された局所的経路を示す情報は、自動運転制御用のECU184に送られる。ECU184は、局所的経路に沿って作業車両100が走行するように、ECU181およびECU182を制御する。これにより、作業車両100は、障害物を回避しながら走行することができる。なお、作業車両100が走行する道路に信号機が存在する場合、作業車両100は、例えばカメラ120が撮影した画像に基づいて信号機を認識し、赤信号で停止し、青信号で発進する、といった動作を行ってもよい。
図14は、障害物が存在する環境で生成される大域的経路および局所的経路の一例を示す図である。図14において、大域的経路30が点線矢印で例示され、走行中に逐次生成される局所的経路32が実線矢印で例示されている。大域的経路30は、複数のウェイポイント30pによって規定される。局所的経路32は、ウェイポイント30pよりも短い間隔で設定された複数のウェイポイント32pによって規定される。各ウェイポイントは、例えば、位置および向きの情報を有する。管理装置600は、複数のウェイポイント30pを、道76の交差点を含む複数の箇所に設定することによって大域的経路30を生成する。ウェイポイント30pの間隔は、比較的長く、例えば数メートルから数十メートル程度であってもよい。ECU185は、作業車両100の走行中、センシング装置から出力されたセンシングデータに基づいて、複数のウェイポイント32pを設定することにより、局所的経路32を生成する。局所的経路32におけるウェイポイント32pの間隔は、大域的経路30におけるウェイポイント30pの間隔よりも短い。ウェイポイント32pの間隔は、例えば、数十センチメートル(cm)から数メートル(m)程度であり得る。局所的経路32は、作業車両100の位置を起点とする比較的狭い範囲(例えば数メートル程度の範囲)内に生成される。図14には、作業車両100が圃場70の間の道76に沿って走行し、交差点で左折する間に生成される一連の局所的経路32が例示されている。ECU185は、作業車両100の移動中、ECU184によって推定された作業車両100の位置から、例えば数メートル先の地点までの局所的経路を生成する動作を繰り返す。作業車両100は、逐次生成される局所的経路に沿って走行する。
図14に示す例では、作業車両100の前方に障害物40(例えば人)が存在する。図14には、作業車両100に搭載されたカメラ120、障害物センサ130、またはLiDARセンサ140などのセンシング装置によってセンシングされる範囲の一例が扇形で例示されている。このような状況において、ECU185は、センシングデータに基づいて検出された障害物40を回避するように、局所的経路32を生成する。ECU185は、例えば、センシングデータと、作業車両100の幅(インプルメントが装着されている場合はインプルメントの幅も含む)とに基づいて、作業車両100が障害物40に衝突する可能性があるかを判断する。作業車両100が障害物40に衝突する可能性がある場合、ECU185は、その障害物40を避けるように複数のウェイポイント32pを設定して局所的経路32を生成する。なお、ECU185は、障害物40の有無だけでなく、路面の状態(例えば、ぬかるみ、陥没等)をセンシングデータに基づいて認識し、走行が困難な箇所が検出された場合、そのような箇所を回避するように局所的経路32を生成してもよい。作業車両100は、局所的経路32に沿って走行する。局所的経路32をどのように設定しても障害物40を回避できない場合、制御装置180は、作業車両100を停止させてもよい。このとき、制御装置180は、端末装置400に警告信号を送信して監視者に注意喚起を行ってもよい。停止後、障害物40が移動して衝突のおそれがなくなったことを認識した場合、制御装置180は、作業車両100の走行を再開してもよい。
なお、図11のフローチャートの例において、大域的経路は、一度生成された後、目的地に到達するまで変更されない。このような例に限らず、作業車両100の走行中に大域的経路が修正されてもよい。例えば、ECU185は、作業車両100の走行中に、カメラ120またはLiDARセンサ140などのセンシング装置によって取得されたセンシングデータに基づいて、作業車両100が走行している道の状態、作業車両100の周辺の草木の状態、および天候の状態の少なくとも一つを認識し、認識した状態が所定の条件を満たす場合に、大域的経路を変更してもよい。作業車両100が大域的経路に沿って走行しているとき、一部の道の通行が困難である場合がある。例えば、豪雨によって道がぬかるんでいたり、路面が陥没していたり、事故その他の原因で通行できなくなっていたりすることがある。あるいは、農道の周辺の草木が想定よりも伸びていたり、建造物が新たに建設されていたりして、GNSS衛星からの衛星信号が受信しにくくなっていることがある。そのような状況を考慮して、ECU185は、作業車両100の走行中に取得されたセンシングデータに基づいて、通行が困難な道を検出し、そのような道を回避するように経路を変更してもよい。また、ECU185は、経路を変更した場合、変更後の経路を記憶装置170に記憶させ、管理装置600に変更後の経路の情報を送信してもよい。その場合、管理装置600は、次回、同じ圃場への経路生成時に、変更後の経路を採用してもよい。これにより、走行環境の変化に応じた柔軟な経路計画が可能になる。
上記の実施形態における農道識別システムを、その機能を有しない農業機械に後から取り付けることもできる。そのようなシステムは、農業機械とは独立して製造および販売され得る。そのようなシステムで使用されるコンピュータプログラムも、農業機械とは独立して製造および販売され得る。コンピュータプログラムは、例えばコンピュータが読み取り可能な非一時的な記憶媒体に格納されて提供され得る。コンピュータプログラムは、電気通信回線(例えばインターネット)を介したダウンロードによっても提供され得る。
以上のように、本開示は、以下の項目に記載の農道識別システム、制御システムおよび農業機械を含む。
[項目1]
自動運転を行う農業機械のための農道識別システムであって、
前記農業機械が走行する地面をセンシングして第1センシングデータを取得し、
前記農業機械の周辺の環境をセンシングして第2センシングデータを取得する、少なくとも1つのセンシング装置と、
前記第1センシングデータに基づいて前記地面の横断プロファイルに関する第1情報を
取得し、
前記第2センシングデータに基づいて前記周辺の環境に関する第2情報を取得し、
前記第1情報および前記第2情報に基づいて、前記地面にある道が農道か否かを識別する、処理装置と
を備える、農道識別システム。
上記の農道識別システムによると、農業機械が走行しようとする道が農道か否かの識別を多様な環境で行うことができる。
[項目2]
前記処理装置は、前記第2センシングデータに基づいて、前記農業機械の周辺に存在する1または複数の物体を認識し、認識した結果を含む前記第2情報を取得する、項目1に記載の農道識別システム。
上記の構成によると、農業機械の周辺に存在する物体の情報に基づいて、農業機械が走行しようとする道が農道か否かの識別を行うことができる。
[項目3]
前記処理装置は、前記第1情報が第1条件を満たし、かつ、前記第2情報が第2条件を満たすとき、前記道が農道であると判定する、項目1または2に記載の農道識別システム。
[項目4]
前記少なくとも1つのセンシング装置は、LiDARセンサおよび/またはカメラを含み、
前記第1センシングデータは、前記LiDARセンサによって取得された前記地面の点群データおよび/または前記カメラによって取得された前記地面の画像データを含み、
前記第2センシングデータは、前記LiDARセンサによって取得された前記周辺の環境の点群データおよび/または前記カメラによって取得された前記周辺の環境の画像データを含む、項目1から3のいずれか1項に記載の農道識別システム。
[項目5]
前記処理装置は、前記道が農道であると判定したとき、前記農業機械の車幅および/または長さに基づいて、前記農業機械が前記道を走行可能か否かを判定する、項目1から4のいずれか1項に記載の農道識別システム。
上記の構成によると、自動運転を行う農業機械の走行がよりスムーズに行われ得る。また、上記の構成の農道識別システムは、多様な農業機械に適用可能である。
[項目6]
前記農業機械は、インプルメントを装着可能なトラクタであり、
前記処理装置は、前記トラクタがインプルメントを装着している場合に、前記道が農道であると判定したとき、前記インプルメントの車幅および/または長さに基づいて、前記農業機械が前記道を走行可能か否かを判定する、項目1から5のいずれか1項に記載の農道識別システム。
上記の構成によると、自動運転を行う農業機械の走行がよりスムーズに行われ得る。また、上記の構成の農道識別システムは、多様な農業機械(農業機械が装着しているインプルメントを含む)に適用可能である。
[項目7]
前記処理装置は、前記農業機械が前記道を走行できないと判定したとき、前記農業機械が前記道を走行できないことを、前記農業機械の監視コンピュータに通知する、項目5または6に記載の農道識別システム。
上記の構成によると、農業機械の監視コンピュータと連携して農業機械の走行および制御を行うことができる。
[項目8]
前記処理装置は、前記第2センシングデータに基づいて、前記道に隣接して、前記道の両側または片側に、圃場、畦道、林および草木からなる群から選択された少なくとも1つが認識されたとき、前記第2条件が満たされたと判定する、項目3に記載の農道識別システム。
[項目9]
前記少なくとも1つのセンシング装置は、LiDARセンサおよび/またはカメラを含み、
前記第2センシングデータは、前記LiDARセンサによって取得された前記周辺の環境の点群データおよび/または前記カメラによって取得された前記周辺の環境の画像データを含み、
前記処理装置は、前記第2センシングデータから、前記道を検出するとともに、前記道に隣接して、前記道の両側または片側に存在する、圃場、畦道、林および草木からなる群から選択された少なくとも1つを検出する、項目8に記載の農道識別システム。
[項目10]
前記処理装置は、前記第1情報に基づいて、前記地面に形成された、前記道が延びる方向に沿って延びる轍が検出されたとき、前記第1条件が満たされたと判定する、項目3に記載の農道識別システム。
[項目11]
前記処理装置は、前記第1情報に基づいて、前記地面の横断プロファイルが中央部に凸部を有し、かつ、前記凸部が、前記道が延びる方向に沿って延びていることが検出されたとき、前記第1条件が満たされたと判定する、項目3に記載の農道識別システム。
[項目12]
前記処理装置は、前記第1情報に基づいて、前記凸部上または前記凸部に沿って草が生えていることが検出されたとき、前記第1条件が満たされたと判定する、項目11に記載の農道識別システム。
[項目13]
前記少なくとも1つのセンシング装置は、カメラを含み、
前記第1センシングデータは、前記カメラによって取得された前記地面のカラー画像データを含み、
前記処理装置は、前記地面の前記カラー画像データのRGB値に基づいて、前記凸部上または前記凸部に沿って生えている草を検出する、項目12に記載の農道識別システム。
[項目14]
前記処理装置は、前記第1情報に基づいて、前記地面に所定値よりも大きい傾きが検出されたとき、前記第1条件が満たされたと判定する、項目3に記載の農道識別システム。
[項目15]
前記農業機械の振動を検知するセンサをさらに有し、
前記処理装置は、前記センサから出力された信号に基づいて前記農業機械の振動の程度に関する第3情報を取得し、前記第3情報にさらに基づいて、前記道が農道か否かを識別する、項目1から14のいずれか1項に記載の農道識別システム。
[項目16]
前記処理装置は、前記農業機械の振動の程度を表す指標値が所定値よりも大きいか否かを判定し、前記指標値が所定値よりも大きいとき、前記道が農道か否かの識別を行う、項目15に記載の農道識別システム。
[項目17]
前記処理装置は、前記第1センシングデータに基づいて前記地面のラフネスを評価し、前記地面のラフネスにさらに基づいて、前記道が農道か否かを識別する、項目1から16のいずれか1項に記載の農道識別システム。
[項目18]
前記処理装置は、前記道が農道であると判定したとき、前記第1センシングデータおよび前記第2センシングデータに基づいて、前記道に沿って前記農業機械の経路を設定する、項目1から17のいずれか1項に記載の農道識別システム。
上記の構成によると、自動運転を行う農業機械の経路設計(経路計画)の効率が向上され得る。
[項目19]
前記処理装置は、前記第2センシングデータから、圃場の出入口、溝および農業施設からなる群から選択された少なくとも1つの特徴点を検出し、前記少なくとも1つの特徴点を用いて前記農業機械の経路にランドマークを設定する、項目18に記載の農道識別システム。
上記の構成によると、自動運転を行う農業機械の経路設計(経路計画)の効率が向上され得る。
[項目20]
項目1から19のいずれか1項に記載の農道識別システムと、
前記農業機械の走行を制御する制御装置と
を備える、制御システム。
[項目21]
前記制御装置は、前記処理装置が、前記道が農道であると判定したときと、前記道が農道でないと判定したときとで、前記農業機械の制御方法を異ならせる、項目20に記載の制御システム。
上記の構成によると、自動運転を行う農業機械の走行が、一般道と農道との両方において、よりスムーズに行われ得る。
[項目22]
項目20または21に記載の制御システムを備える、農業機械。