(用語の定義)
本開示において「作業車両」は、作業地で作業を行うために使用される車両を意味する。「作業地」は、例えば圃場、山林、または建設現場等の、作業が行われる任意の場所である。「圃場」は、例えば果樹園、畑、水田、穀物農場、または牧草地等の、農作業が行われる任意の場所である。作業車両は、例えばトラクタ、田植機、コンバイン、乗用管理機、もしくは乗用草刈機などの農業機械、または、建設作業車もしくは除雪車などの、農業以外の用途で使用される車両であり得る。本開示における作業車両は、後部または前部に、作業内容に応じたインプルメント(「作業機」または「作業装置」とも呼ばれる。)を装着することができる。作業車両が作業を行いながら走行することを「作業走行」と称することがある。
「農業機械」は、農業用途で使用される機械を意味する。農業機械の例は、トラクタ、収穫機、田植機、乗用管理機、野菜移植機、草刈機、播種機、施肥機、および農業用移動ロボットを含む。トラクタのような作業車両が単独で「農業機械」として機能する場合だけでなく、作業車両に装着または牽引されるインプルメントと作業車両の全体が一つの「農業機械」として機能する場合がある。農業機械は、圃場内の地面に対して、耕耘、播種、防除、施肥、作物の植え付け、または収穫などの農作業を行う。
「自動運転」は、運転者による手動操作によらず、制御装置の働きによって車両の走行を制御することを意味する。自動運転中、車両の走行だけでなく、作業の動作(例えばインプルメントの動作)も自動で制御されてもよい。自動運転によって車両が走行することを「自動走行」と称する。制御装置は、車両の走行に必要な操舵、走行速度の調整、走行の開始および停止の少なくとも一つを制御し得る。インプルメントが装着された作業車両を制御する場合、制御装置は、インプルメントの昇降、インプルメントの動作の開始および停止などの動作を制御してもよい。自動運転による走行には、車両が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれ得る。自動運転を行う車両は、部分的にユーザの指示に基づいて走行してもよい。また、自動運転を行う車両は、自動運転モードに加えて、運転者の手動操作によって走行する手動運転モードで動作してもよい。手動によらず、制御装置の働きによって車両の操舵を行うことを「自動操舵」と称する。制御装置の一部または全部が車両の外部にあってもよい。車両の外部にある制御装置と車両との間では、制御信号、コマンド、またはデータなどの通信が行われ得る。自動運転を行う車両は、人がその車両の走行の制御に関与することなく、周囲の環境をセンシングしながら自律的に走行してもよい。自律的な走行が可能な車両は、無人で走行することができる。自律走行中に、障害物の検出および障害物の回避動作が行われ得る。
「環境地図」は、作業車両が走行する環境に存在する物の位置または領域を所定の座標系によって表現したデータである。環境地図を規定する座標系の例は、地球に対して固定された地理座標系などのワールド座標系だけでなく、オドメトリ情報に基づくポーズを表示するオドメトリ座標系などを含む。環境地図は、環境に存在する物について、位置以外の情報(例えば、属性情報その他の情報)を含んでいてもよい。環境地図は、点群地図または格子地図など、さまざまな形式の地図を含む。
「農道」は、主に農業目的で利用される道を意味する。農道は、アスファルトで舗装された道に限らず、土または砂利等で覆われた未舗装の道も含む。農道は、車両型の農業機械(例えばトラクタ等の作業車両)のみが専ら通行可能な道(私道を含む)と、一般の車両(乗用車、トラック、バス等)も通行可能な道路とを含む。作業車両は、農道に加えて一般道を自動で走行してもよい。一般道は、一般の車両の交通のために整備された道路である。
(実施形態)
以下、本開示の実施形態を説明する。ただし、必要以上に詳細な説明は省略することがある。例えば、既によく知られた事項の詳細な説明および実質的に同一の構成に関する重複する説明を省略することがある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。以下の説明において、同一または類似の機能を有する構成要素については、同一の参照符号を付している。
以下の実施形態は例示であり、本開示の技術は以下の実施形態に限定されない。例えば、以下の実施形態で示される数値、形状、材料、ステップ、ステップの順序、表示画面のレイアウトなどは、あくまでも一例であり、技術的に矛盾が生じない限りにおいて種々の改変が可能である。また、技術的に矛盾が生じない限りにおいて、一の態様と他の態様とを組み合わせることが可能である。
以下、作業車両の一例であるトラクタに本開示の技術を適用した実施形態を説明する。本開示の技術は、トラクタに限らず、インプルメントを装着可能な他の種類の作業車両にも適用することができる。
図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は、圃場内においては、上記と同様に局所的経路を生成しながら走行してもよいし、局所的経路を生成せずに目標経路に沿って走行し、障害物が検出された場合に停止する、という動作を行ってもよい。
管理装置600は、作業車両100による農作業を管理するコンピュータである。管理装置600は、例えば圃場に関する情報をクラウド上で一元管理し、クラウド上のデータを活用して農業を支援するサーバコンピュータであり得る。管理装置600は、例えば、作業車両100の作業計画を作成し、その作業計画に従って、作業車両100の目標経路を生成してもよい。管理装置600は、作業計画によらず、ユーザが端末装置400を操作して指定した経路または経由地点を示す情報に基づいて目標経路を生成してもよい。管理装置600は、さらに、作業車両100または他の移動体がLiDARセンサなどのセンシング装置を用いて収集したデータに基づいて、環境地図の生成および編集を行ってもよい。管理装置600は、生成した作業計画、目標経路、および環境地図のデータを作業車両100に送信する。作業車両100は、それらのデータに基づいて、移動および農作業を自動で行う。
端末装置400は、作業車両100から離れた場所にいるユーザが使用するコンピュータである。図1に示す端末装置400はラップトップコンピュータであるが、これに限定されない。端末装置400は、デスクトップPC(personal computer)などの据え置き型のコンピュータであってもよいし、スマートフォンまたはタブレットコンピュータなどのモバイル端末でもよい。端末装置400は、作業車両100を遠隔監視したり、作業車両100を遠隔操作したりするために用いられ得る。例えば、端末装置400は、作業車両100が備える1台以上のカメラ(撮像装置)が撮影した映像をディスプレイに表示させることができる。ユーザは、その映像を見て、作業車両100の周囲の状況を確認し、作業車両100に停止または発進の指示を送ることができる。
以下、本実施形態におけるシステムの構成および動作をより詳細に説明する。
[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次元地図とを、いずれも「環境地図」と称する。
これらの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に送信することもできる。
[2.動作]
次に、作業車両100の動作を説明する。
[2-1.自動走行動作]
まず、作業車両100による自動走行の動作の例を説明する。本実施形態における作業車両100は、圃場内および圃場外の両方で自動で走行することができる。圃場内において、作業車両100は、圃場内に設定された目標経路に沿って走行しながら、インプルメント300を駆動して所定の農作業を行う。作業車両100は、圃場内を走行中、障害物センサ130によって障害物が検出された場合、走行を停止し、ブザー220からの警告音の発出、および端末装置400への警告信号の送信などの動作を行う。圃場内において、作業車両100の測位は、主にGNSSユニット110から出力されるデータに基づいて行われる。一方、圃場外において、作業車両100は、圃場外の農道または一般道に設定された目標経路に沿って自動で走行する。作業車両100は、圃場外を走行中、カメラ120またはLiDARセンサ140によって取得されたデータに基づいて局所的経路を生成しながら走行する。圃場外において、作業車両100は、障害物が検出されると、障害物を回避するか、その場で停止する。圃場外においては、GNSSユニット110から出力される測位データに加え、LiDARセンサ140またはカメラ120から出力されるデータに基づいて作業車両100の位置が推定される。
以下、作業車両100が圃場内を自動走行する場合の動作を説明する。作業車両100が圃場外を自動走行する場合の動作については、後述する。
図6は、圃場内を目標経路に沿って自動で走行する作業車両100の例を模式的に示す図である。この例において、圃場は、作業車両100がインプルメント300を用いて作業を行う作業領域72と、圃場の外周縁付近に位置する枕地74とを含む。地図上で圃場のどの領域が作業領域72または枕地74に該当するかは、ユーザによって事前に設定され得る。この例における目標経路は、並列する複数の主経路P1と、複数の主経路P1を接続する複数の旋回経路P2とを含む。主経路P1は作業領域72内に位置し、旋回経路P2は枕地74内に位置する。図6に示す各主経路P1は直線状の経路であるが、各主経路P1は曲線状の部分を含んでいてもよい。図6における破線は、インプルメント300の作業幅を表している。作業幅は、予め設定され、記憶装置170に記録される。作業幅は、ユーザが操作端末200または端末装置400を操作することによって設定され、記録され得る。あるいは、作業幅は、インプルメント300を作業車両100に接続したときに自動で認識され、記録されてもよい。複数の主経路P1の間隔は、作業幅に合わせて設定され得る。目標経路は、自動運転が開始される前に、ユーザの操作に基づいて作成され得る。目標経路は、例えば圃場内の作業領域72の全体をカバーするように作成され得る。作業車両100は、図6に示すような目標経路に沿って、作業の開始地点から作業の終了地点まで、往復を繰り返しながら自動で走行する。なお、図6に示す目標経路は一例に過ぎず、目標経路の定め方は任意である。
次に、制御装置180による自動運転時の制御の例を説明する。
図7は、制御装置180によって実行される自動運転時の操舵制御の動作の例を示すフローチャートである。制御装置180は、作業車両100の走行中、図7に示すステップ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によって実行される。
図7に示す例では、制御装置180は、GNSSユニット110によって特定された作業車両100の位置と目標経路との偏差のみに基づいて駆動装置240を制御するが、方位の偏差もさらに考慮して制御してもよい。例えば、制御装置180は、GNSSユニット110によって特定された作業車両100の向きと、目標経路の方向との角度差である方位偏差が予め設定された閾値を超える場合に、その偏差に応じて駆動装置240の操舵装置の制御パラメータ(例えば操舵角)を変更してもよい。
以下、図8Aから図8Dを参照しながら、制御装置180による操舵制御の例をより具体的に説明する。
図8Aは、目標経路Pに沿って走行する作業車両100の例を示す図である。図8Bは、目標経路Pから右にシフトした位置にある作業車両100の例を示す図である。図8Cは、目標経路Pから左にシフトした位置にある作業車両100の例を示す図である。図8Dは、目標経路Pに対して傾斜した方向を向いている作業車両100の例を示す図である。これらの図において、GNSSユニット110によって計測された作業車両100の位置および向きを示すポーズがr(x,y,θ)と表現されている。(x,y)は、地球に固定された2次元座標系であるXY座標系における作業車両100の基準点の位置を表す座標である。図8Aから図8Dに示す例において、作業車両100の基準点はキャビン上のGNSSアンテナが設置された位置にあるが、基準点の位置は任意である。θは、作業車両100の計測された向きを表す角度である。図示されている例においては、目標経路PがY軸に平行であるが、一般的には目標経路PはY軸に平行であるとは限らない。
図8Aに示すように、作業車両100の位置および向きが目標経路Pから外れていない場合には、制御装置180は、作業車両100の操舵角および速度を変更せずに維持する。
図8Bに示すように、作業車両100の位置が目標経路Pから右側にシフトしている場合には、制御装置180は、作業車両100の走行方向が左寄りに傾き、経路Pに近付くように操舵角を変更する。このとき、操舵角に加えて速度も併せて変更してもよい。操舵角の大きさは、例えば位置偏差Δxの大きさに応じて調整され得る。
図8Cに示すように、作業車両100の位置が目標経路Pから左側にシフトしている場合には、制御装置180は、作業車両100の走行方向が右寄りに傾き、経路Pに近付くように操舵角を変更する。この場合も、操舵角に加えて速度も併せて変更してもよい。操舵角の変化量は、例えば位置偏差Δxの大きさに応じて調整され得る。
図8Dに示すように、作業車両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は、圃場内および圃場外を自動で走行できる。図9は、複数の作業車両100が圃場70の内部および圃場70の外側の道76を自動走行している状況の例を模式的に示す図である。記憶装置170には、複数の圃場70およびその周辺の道76を含む領域の環境地図および目標経路が記録される。環境地図および目標経路は、管理装置600、制御装置180、操作端末200、または端末装置400によって生成され得る。作業車両100が道路上を走行する場合、作業車両100は、インプルメント300を上昇させた状態で、カメラ120およびLiDARセンサ140などのセンシング装置を用いて周囲をセンシングしながら、目標経路に沿って走行する。走行中、制御装置180は、目標経路に沿った局所的経路を逐次生成し、局所的経路に沿って作業車両100が走行するように操舵制御を行う。これにより、障害物を回避しながら自動走行することができる。走行中に、状況に応じて目標経路が変更されてもよい。
[2-2.対向車を回避する動作]
作業車両100が圃場外の道に沿って走行しているとき、作業車両100の前方から対向車が接近してくることがある。その場合、作業車両100の制御装置180は、対向車を回避するための動作を実行する。例えば、制御装置180は、作業車両100が作業車両100よりも幅の広いインプルメント300を後部に装着している状態で圃場外の道において対向車とすれ違うとき、作業車両100の前部が道の中央側に寄り、作業車両100の後部が道の端側に寄る状態にして、インプルメント300と対向車との衝突を回避しながらすれ違う衝突回避走行を作業車両100に実行させる。以下、この動作を具体的に説明する。
図10Aは、圃場70の外側の道76(例えば農道)に沿って作業車両100Aが自動走行を行っているときに、作業車両100Aの前方に対向車が存在する状況の例を模式的に示している。この例における対向車は、作業車両100Aと同様の作業車両100Bである。作業車両100Bは、作業車両100Aと同様、自動運転トラクタである。対向車は、作業車両100Aとは異なる種類の車両であってもよく、自動運転の機能を備えていなくてもよい。ここでは、作業車両100A、100Bの両方が、前述の作業車両100の構成(例えば図3参照)を備えている場合の例を説明する。以下の説明において、作業車両100Bを「対向車100B」とも称する。
作業車両100Aは、後部にインプルメント300Aを装着している。この例におけるインプルメント300Aの幅は、作業車両100Aの幅よりも大きい。対向車である作業車両100Bは、作業車両100Aと同様のトラクタであり、後部にインプルメント300Bを装着している。インプルメント300Bの幅は、作業車両100Bの幅よりも大きい。
図10Aに示す例においては、インプルメント300A、300Bの幅が広く、作業車両100Aと対向車100Bとが通常の方法ですれ違おうとすると、インプルメント300Aとインプルメント300Bとが衝突する。ここで通常の方法とは、作業車両100Aが道76の一方の端に寄り、対向車100Bが道76の反対側の端に寄ってすれ違う方法を指す。図10Bは、インプルメント300Aとインプルメント300Bとが衝突する状況の例を示している。図10Bにおける破線矢印は、作業車両100Aおよび対向車100Bの走行軌跡の例を示している。図10Bの例では、道76の幅が狭く、インプルメント300A、300Bの幅が広いため、すれ違いの際にインプルメント300Aとインプルメント300Bとが衝突する。対向車100Bがインプルメント300Bを装着していない場合も、道幅が狭いと、インプルメント300Aと対向車100Bとが衝突する可能性がある。
衝突を避けるため、本実施形態における作業車両100Aは、前部が道76の中央側に寄り、後部が道76の端側に寄る状態にして、インプルメント300Aと対向車100Bとの衝突を回避しながらすれ違う衝突回避走行を行う。ここで、「インプルメント300Aと対向車100Bとの衝突」は、インプルメント300Aと対向車100Bの車体との衝突だけでなく、インプルメント300Aと対向車100Bのインプルメント300Bとの衝突を含む。
図10Cは、衝突回避走行を行っている作業車両100Aの例を示している。この例では、対向車100Bも同様の衝突回避走行を行っている。図10Cの例において、制御装置180は、作業車両100Aの進行方向を、まず道76の中央から遠ざかる方向に変化させ、その後、道76の中央に近付く方向に変化させる。図10Cにおいて、道76の中央を表す中央線76cが破線で示されている。図10Cの例では、対向車100Bも作業車両100Aと同様の動作を行う。これにより、作業車両100Aおよび対向車100Bは、例えば図10Cにおいて破線矢印で示すような軌跡で走行し、互いにすれ違う。このようなすれ違いのための走行を本明細書において「衝突回避走行」と呼ぶ。衝突回避走行により、作業車両100Aのインプルメント300Aと対向車100Bのインプルメント300B(または車体もしくはタイヤ)との衝突を回避することができる。
図10Cの例において、制御装置180は、インプルメント300Aの一部が道76の外側にはみ出すように衝突回避走行の経路を決定する。インプルメント300Aの一部が道76の外側にはみ出した状態で衝突回避走行を行うことにより、インプルメント300Aと対向車100Bとの衝突を回避しやすくなる。なお、作業車両100Aが圃場70の外側の道76上を走行するとき、インプルメント300Aは、道76の表面よりも高い位置にある。よって、例えば圃場70が道76よりも低い位置にある場合、インプルメント300Aの一部が道76の外側にはみ出したとしても問題はない。
図11Aから図11Fは、作業車両100Aと対向車100Bとがともに衝突回避走行を行うときの各車両の位置および向きの変化の一例を示している。作業車両100Aおよび対向車100Bは、図11Aから図11Fに示すような軌跡で走行することにより、互いに衝突せずにすれ違うことができる。
なお、対向車100Bは運転者による手動運転で走行してもよい。その場合でも、運転者が上記と同様の軌跡で対向車100Bが走行するように運転すれば、同様に衝突を回避することができる。また、図10Bの例のように対向車100Bが道76の端に寄ってから直進する場合であっても、対向車100Bの位置に応じて作業車両100Aが上記の衝突回避走行を行うことにより、衝突を回避することができる。
本実施形態における制御装置180は、作業車両100Aが備える測位装置(例えばGNSSユニット110等)から出力された作業車両100Aの位置情報と、記憶装置170に格納された環境地図とに基づいて、圃場70外の道76に設定された目標経路に沿って作業車両100Aを走行させる。制御装置180は、目標経路に沿って作業車両100Aを走行させているときに対向車100Bが検知された場合に、衝突回避走行を作業車両100Aに実行させるか否かを決定する。制御装置180は、衝突回避走行を作業車両100Aに実行させることを決定した場合、衝突回避走行の経路を生成し、当該経路に沿って作業車両100Aを走行させる。以下、上記の動作をより詳細に説明する。
図12は、衝突回避走行の制御方法の一例を示すフローチャートである。図12の例において、制御装置180は、作業車両100Aの自動走行の制御を行っているとき、ステップS200からS206の動作を実行する。以下、各ステップの動作を説明する。
ステップS200において、制御装置180は、対向車100Bの位置情報を取得する。例えば、制御装置180は、ネットワークを介して、対向車100Bの位置情報を取得することができる。作業車両100A、100Bを含め、圃場70の周辺のエリア内を自動走行する各作業車両100は、測位装置(例えばGNSSユニット110等)によって取得した自己の位置情報を逐次管理装置600に送信するように構成され得る。その場合、制御装置180は、ネットワークを介して、管理装置600から、対向車100Bの位置情報を取得することができる。あるいは、制御装置180は、対向車100Bの位置情報を、作業車両100Aが備えるセンシング装置(LiDARセンサ140および/またはカメラ120等)から出力されたセンサデータおよび環境地図に基づく推定によって取得してもよい。
ステップS201において、制御装置180は、対向車100Bが作業車両100Aの進路上に存在するか否かを判定する。例えば、制御装置180は、測位装置によって計測された作業車両100Aの位置と、対向車100Bの位置とに基づいて、作業車両100Aの前方の所定距離(例えば、10m、20m、または30m等)以内の範囲に対向車100Bが存在するか否かを判定する。作業車両100Aの位置は、例えば、作業車両100Aが備える測位装置(例えばGNSSユニット110等)から取得することができる。測位装置は、カメラ120および/またはLiDARセンサ140から出力されたデータと、環境地図とのマッチングによって自己位置推定を行う装置であってもよい。図3の構成例では、ECU184がそのような自己位置推定を行う測位装置としての機能を果たし得る。作業車両100Aの進路上に対向車100Bが検知された場合、ステップS202に進む。対向車100Bが検知されなかった場合、ステップS205に進み、現状の経路に沿った走行制御を継続する。
ステップS202において、制御装置180は、衝突回避走行が必要か否かを判定する。制御装置180は、例えば、道76の幅および作業車両100Aのインプルメント300Aの幅等の情報を取得し、それらの幅に基づいて、衝突回避走行が必要か否かを判定する。図10Bに示す例のように、作業車両100Aが道76の端に寄っただけでは衝突を回避できない場合、制御装置180は衝突回避走行が必要であると判定する。この判定のさらに具体的な例については後述する。衝突回避走行が必要と判定された場合、ステップS203に進む。衝突回避走行が不要と判定された場合、ステップS204に進む。
ステップS203において、制御装置180は、衝突回避走行の経路を生成する。例えば、制御装置180は、図10Cに示すような、道76の端に寄った後、作業車両100Aの前部が道76の中央側に寄り、後部が道76の端側に寄った状態で進む経路を生成する。衝突回避走行の経路を決定する方法の具体例については後述する。
ステップS204において、制御装置180は、通常の経路生成処理を行う。例えば、制御装置180は、図10Bにおいて破線矢印で示すような、道76の端に寄ってから直進する経路を生成する。
ステップS205において、制御装置180は、生成された経路に沿って作業車両100Aが走行するように作業車両100Aの走行駆動装置240を制御する。ここで、ステップS201において進路上に対向車が存在しないと判定された場合は、制御装置180は、前回生成した経路に沿って作業車両100Aを走行させる。ステップS203において衝突回避走行の経路が生成された場合は、制御装置180は、当該衝突回避走行の経路に沿って作業車両100Aを走行させる。ステップS204において通常の回避動作の経路が生成された場合は、制御装置180は、当該通常の回避動作の経路に沿って作業車両100Aを走行させる。制御装置180は、例えば図8Aから図8Dを参照して説明した方法と同様の方法で、作業車両100Aの操舵制御を行う。制御装置180は、衝突回避走行時の作業車両100の走行速度を、衝突回避走行の前後の作業車両100の走行速度よりも低くしてもよい。
ステップS206において、制御装置180は、動作終了の指令を受けたか否かを判定する。動作終了の指令は、例えばユーザが遠隔操作で自動運転の停止を指示したり、作業車両100が目的地に到達したりした場合に出され得る。動作終了の指令が出されていない場合、ステップS200に戻る。制御装置180は、動作終了の指令が出されるまで、ステップS200からS206の動作を繰り返す。上記の動作は、制御装置180におけるECU182、184、185によって実行され得る。
以上の動作により、作業車両100Aと対向車100Bとの衝突を効果的に回避することができる。
次に、ステップS202における衝突回避走行が必要か否かを判定する方法の具体例を説明する。
制御装置180は、インプルメント300Aの幅および道76の幅のそれぞれの情報を取得し、インプルメント300Aの幅および道76の幅に基づいて、衝突回避走行を作業車両100Aに実行させるか否かを決定するように構成され得る。例えば、制御装置180は、インプルメント300Aの幅および道76の幅のそれぞれの情報に基づいて、図10Bに示す例のように作業車両100Aが道76の端に寄っただけでは対向車100Bとの衝突を回避できないと判定した場合に衝突回避走行を作業車両100Aに実行させる。
作業車両100Aの記憶装置170には、作業車両100Aが走行する環境におけるそれぞれの道76の幅、作業車両100Aの幅、およびインプルメント300Aの幅などの情報が予め記録され得る。インプルメント300Aの幅の情報は、ユーザによって入力されてもよいし、インプルメント300Aを作業車両100Aに装着したときにインプルメント300Aから自動で入力されてもよい。道76の幅の情報は、環境地図の属性情報として地図データに含まれていてもよい。あるいは、道76の幅は、作業車両100Aが過去に道76を走行したときにカメラ120によって撮影された画像に基づく処理によって計算されてもよい。制御装置180は、管理装置600等の外部の装置からネットワークを介して道76の幅の情報を取得してもよい。
制御装置180は、対向車100Bの幅の情報をさらに取得し、対向車100Bの幅にさらに基づいて、衝突回避走行を作業車両に実行させるか否かを決定してもよい。ここで、対向車100Bが、対向車100Bの幅よりも大きい幅を有するインプルメント300Bを装着している場合、インプルメント300Bの幅が「対向車100Bの幅」として取り扱われる。作業車両100Aは、外部の装置(例えば管理装置600)から、ネットワークを介して、対向車である作業車両100Bの位置および幅、ならびにインプルメント300Bの幅などの情報を予め取得してもよい。
図13は、道76、作業車両100A、100B、およびインプルメント300A、300Bのそれぞれの幅を例示している。図13に示すように、道76の幅をWR、作業車両100Aの幅をWV1、インプルメント300Aの幅をWI1、作業車両100Bの幅をWV2、インプルメント300Bの幅をWI2とする。ここで、作業車両100A、100B、およびインプルメント300A、300Bの各々の幅は、それぞれの中で最も幅の広い部分の幅を指す。
制御装置180は、インプルメント300Aの幅WI1および道76の幅WRに基づいて、衝突回避走行を作業車両100Aに実行させるか否かを決定するように構成され得る。例えば、インプルメント300Aの幅WI1が道76の幅WRの半分に1以下の第1係数を乗じた値よりも大きい場合に、衝突回避走行を作業車両100Aに実行させてもよい。第1係数は、例えば1.0、0.9、または0.8などの、1に近い値に設定され得る。第1係数は、例えば0.7以上1.0以下であり得る。インプルメント300Aの幅WI1が道76の幅WRの半分よりも小さい場合、図10Bに示す通常の回避動作でも対向車100Bとの衝突を避けることが可能である。このため、制御装置180は、インプルメント300Aの幅WI1が道76の幅WRの半分に1以下の第1係数を乗じた値以下である場合には、図10Bに示す通常の回避動作を実行させてもよい。
衝突が生じるか否かは、インプルメント300Aの幅WI1と道76の幅WRだけでなく、対向車100Bの幅(この例ではインプルメント300Bの幅WI2)にも依存する。このため、制御装置180は、例えば、インプルメント300Aの幅WI1と対向車100Bの幅(インプルメントの幅WI2)との合計が、道の幅WRに1以下の第2係数を乗じた値よりも大きい場合に、衝突回避走行を作業車両100Aに実行させてもよい。第2係数は、例えば1.0、0.9または0.8などの、1に近い値に設定され得る。第2係数は、例えば0.7以上1.0以下の値に設定され得る。インプルメント300Aの幅WI1とインプルメントの幅WI2との合計が、道の幅WRよりも小さい場合、図10Bに示す通常の回避動作でも対向車100Bとの衝突を避けることが可能である。このため、制御装置180は、インプルメント300Aの幅WI1と対向車100Bのインプルメントの幅WI2との合計が道の幅WRに1以下の第2係数を乗じた値以下である場合には、図10Bに示す通常の回避動作を実行させてもよい。
ここで、インプルメント300A、300Bが互いに衝突しない条件をより詳細に検討する。図13に示すように、作業車両100Aが道76の端に寄っており、且つ作業車両100Bが道76の反対側の端に寄っている状態で、作業車両100A、100Bが互いに反対方向に直進する状況を考える。この場合、以下の不等式(1)を満たせば、インプルメント300A、300B同士の衝突が生じない。
すなわち、作業車両100Aの幅WV1と、インプルメント300Aの幅WI1と、作業車両100Bの幅WV2と、インプルメント300Bの幅WI2との和の半分が、道76の幅WRよりも小さければ、インプルメント300A、300B同士の衝突が生じない。
しかし、現実には作業車両100A、100Bは、道76の端よりも若干内側を走行するため、上記の不等式(2)を満たしていても、衝突が生じ得る。そこで、kを1以下の正の係数として、制御装置180は、以下の式(3)を満たす場合は図10Bに示す通常の制御を行い、式(3)を満たさない場合に図10Cに示す衝突回避走行の制御を行ってもよい。
ここでkは、例えば0.7以上1以下の値に設定され得る。
なお、作業車両100Bの幅W
V2が作業車両100Aの幅W
V1に等しく、インプルメント300Bの幅W
I2がインプルメント300Aの幅W
I1に等しい場合、式(3)は、以下の式(4)に変形される。
この場合、制御装置180は、式(4)を満たす場合は図10Bに示す通常の制御を行い、式(4)を満たさない場合に図10Cに示す衝突回避走行の制御を行ってもよい。
次に、図12のステップS203における衝突回避走行の経路の決定方法の具体例を説明する。
制御装置180は、インプルメント300Aの幅WI1および道76の幅WRに基づいて、衝突回避走行の経路を決定するように構成され得る。例えば、制御装置180は、インプルメント300Aの幅WI1と道76の幅WRとに基づき、作業車両100Aが対向車100Bとすれ違うときにインプルメント300Aの一端が道76の中央線76Cを超えないように衝突回避走行の経路を決定してもよい。
図14Aおよび図14Bは、衝突回避走行の経路が満たすべき条件を説明するための図である。これらの図において、衝突回避走行の局所的経路が太線の矢印で示されている。制御装置180は、局所的経路を決定し、その局所的経路に沿って作業車両100Aを走行させる動作を繰り返す。これにより、作業車両100Aは、図11Aから図11Fに示すような衝突回避走行を行う。局所的経路は、比較的短い長さ(例えば数十センチメートルから数メートル程度)の経路である。制御装置180は、LiDARセンサ140、カメラ120、および障害物センサ130等のセンシング装置から出力されたデータに基づいて、周囲の対向車100B等の障害物を検知し、障害物を避けるように局所的経路を逐次決定する。
図14Aに示すように、ある瞬間における作業車両100Aの進行方向(図中の太線矢印の方向)と、道76の中央線76cが延びる方向(図の上方向)とのなす角をθとする。また、作業車両100Aの中心を通り進行方向に延びる直線と、道76の中央線76cとの交点をCとし、点Cと作業車両100Aの前端部との距離をLとする。θおよびLは、対向車100Bとのすれ違いのために制御されるパラメータである。図14Aに示すように、作業車両100Aの長さをL
V1、作業車両100Aの後部のロアリンクからインプルメント300Aの中心までの距離をL
I1とする。インプルメント300Aの一端が道76の中央線76Cを超えないという条件から、以下の不等式(5)を満たすことが必要である。
したがって、制御装置180は、Lおよびθが不等式(6)を満たすように衝突回避走行の局所的経路を決定するように構成され得る。
また、図14Bに示すように、作業車両100Aの2つの後輪のうち、道76の端側に位置する後輪が道76の外側にはみ出さないことが要求される。そのためには、以下の不等式(7)を満たすことが必要である。
したがって、制御装置180は、Lおよびθが不等式(8)を満たすように衝突回避走行の局所的経路を決定するように構成され得る。
WR、WV1、WI1、LV1、LI1は、道路情報または作業車両100Aおよびインプルメント300Aの諸元から取得できる固定値である。制御装置180は、Lおよびθが不等式(6)および(8)の両方を満たすように作業車両100Aを制御することにより、インプルメント300Aの一端が道76の中央線76Cを超えたり、作業車両100の後輪が道76の外側にはみ出したりすることを回避することができる。これにより、対向車100Bとの衝突を回避する衝突回避走行の経路を適切に設定することができる。
制御装置180は、対向車100Bの幅にさらに基づいて衝突回避走行の経路を決定してもよい。例えば、式(5)の左辺に、対向車100Bの幅に応じて決定される1以下の正の係数k
2を掛けた以下の式(9)を満たすように衝突回避走行の経路を決定してもよい。
ここで、係数k
2は、対向車100Bの幅W
V2またはインプルメントW
I2の幅が大きいほど小さい値に設定される。制御装置180は、例えばネットワークを介して対向車100Bの幅W
V2またはインプルメントの幅W
I2の情報を取得することができる。制御装置180は、W
V2または幅W
I2が大きいほど小さくなる係数k
2を決定し、θおよびLが式(9)を満たすように衝突回避走行の経路を決定してもよい。これにより、衝突の可能性をさらに低減させることができる。
上記の衝突回避走行の制御は、作業車両100Aだけでなく対向車である作業車両100Bによっても実行され得る。上記の制御によれば、道76の幅が狭い場合であっても、作業車両100Aのインプルメント300Aと作業車両100B(またはインプルメント300B)との衝突を回避することができる。このため、例えば作業車両100A、100Bの一方が、幅の狭い道76の入口の手前で一時的に停車して対向車が通過するまで待機するなどの動作を行う必要がない。このため、自動走行の効率性を向上させることができる。
上記の各実施形態における自動運転制御を行うシステムは、それらの機能を有しない農業機械に後から取り付けることもできる。そのようなシステムは、農業機械とは独立して製造および販売され得る。そのようなシステムで使用されるコンピュータプログラムも、農業機械とは独立して製造および販売され得る。コンピュータプログラムは、例えばコンピュータが読み取り可能な非一時的な記憶媒体に格納されて提供され得る。コンピュータプログラムは、電気通信回線(例えばインターネット)を介したダウンロードによっても提供され得る。
以上のように、本開示は、以下の項目に記載の走行制御システム、作業車両、および走行制御方法を含む。
[項目1]
インプルメントを装着可能な農業用の作業車両の自動走行を制御する走行制御システムであって、
前記作業車両が前記作業車両よりも幅の広いインプルメントを後部に装着している状態で圃場外の道において対向車とすれ違うとき、前記作業車両の前部が前記道の中央側に寄り、前記作業車両の後部が前記道の端側に寄る状態にして、前記インプルメントと前記対向車との衝突を回避しながらすれ違う衝突回避走行を前記作業車両に実行させる制御装置を備える、走行制御システム。
[項目2]
前記制御装置は、前記インプルメントの一部が前記道の外側にはみ出すように前記衝突回避走行の経路を決定する、項目1に記載の走行制御システム。
[項目3]
前記制御装置は、前記インプルメントの幅および前記道の幅のそれぞれの情報を取得し、前記インプルメントの幅および前記道の幅に基づいて、前記衝突回避走行の経路を決定する、項目1または2に記載の走行制御システム。
[項目4]
前記制御装置は、前記対向車の幅の情報をさらに取得し、前記対向車の幅にさらに基づいて、前記衝突回避走行の経路を決定する、項目3に記載の走行制御システム。
[項目5]
前記制御装置は、前記インプルメントの幅および前記道の幅のそれぞれの情報を取得し、前記インプルメントの幅および前記道の幅に基づいて、前記衝突回避走行を前記作業車両に実行させるか否かを決定する、項目1から4のいずれかに記載の走行制御システム。
[項目6]
前記制御装置は、前記インプルメントの幅が前記道の幅の半分に1以下の第1係数を乗じた値よりも大きい場合に、前記衝突回避走行を前記作業車両に実行させる、項目5に記載の走行制御システム。
[項目7]
前記制御装置は、前記対向車の幅の情報をさらに取得し、前記対向車の幅にさらに基づいて、前記衝突回避走行を前記作業車両に実行させるか否かを決定する、項目5に記載の走行制御システム。
[項目8]
前記制御装置は、前記インプルメントの幅と前記対向車の幅との合計が、前記道の幅に1以下の第2係数を乗じた値よりも大きい場合に、前記衝突回避走行を前記作業車両に実行させる、項目7に記載の走行制御システム。
[項目9]
前記対向車が他のインプルメントを装着した他の作業車両であり、かつ前記他のインプルメントの幅が前記他の作業車両の幅よりも大きい場合、前記制御装置は、前記他のインプルメントの幅を示す情報を前記対向車の幅を示す情報として取得する、項目4、7、8のいずれかに記載の走行制御システム。
[項目10]
前記制御装置は、外部の装置からネットワークを介して前記対向車の幅および前記道の幅のそれぞれの情報を取得する、項目4、7から9のいずれかに記載の走行制御システム。
[項目11]
前記制御装置は、前記作業車両が備えるセンシング装置から出力されたデータに基づいて前記対向車が検知された場合に、前記衝突回避走行を前記作業車両に実行させるか否かを決定する、
項目1から10のいずれかに記載の走行制御システム。
[項目12]
前記制御装置は、ネットワークを介して前記対向車の位置情報を取得し、前記作業車両が備える測位装置から前記作業車両の位置情報を取得し、前記作業車両の前記位置情報と前記対向車の前記位置情報とに基づいて前記作業車両の進路上に前記対向車が検知された場合に、前記衝突回避走行を前記作業車両に実行させるか否かを決定する、
項目1に記載の走行制御システム。
[項目13]
環境地図を記憶する記憶装置をさらに備え、
前記制御装置は、
前記作業車両が備える測位装置から出力された前記作業車両の位置情報と、前記環境地図とに基づいて、前記圃場外の前記道に設定された目標経路に沿って前記作業車両を走行させ、
前記目標経路に沿って前記作業車両を走行させているときに前記対向車が検知された場合に、前記衝突回避走行を前記作業車両に実行させるか否かを決定する、
項目11に記載の走行制御システム。
[項目14]
項目1から12のいずれかに記載の走行制御システムと、
前記制御装置によって制御される走行駆動装置と、
を備える作業車両。
[項目15]
インプルメントを装着可能な農業用の作業車両の自動走行を制御する走行制御方法であって、
前記作業車両が前記作業車両よりも幅の広いインプルメントを後部に装着している状態で圃場外の道において対向車とすれ違うとき、前記インプルメントと前記対向車との衝突を回避しながらすれ違う衝突回避走行を前記作業車両に実行させることを含み、
前記衝突回避走行を前記作業車両に実行させることは、前記作業車両の前部が前記道の中央側に寄り、前記作業車両の後部が前記道の端側に寄る状態で、前記作業車両が前記対向車とすれ違うように前記作業車両を制御することを含む、走行制御方法。