以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態による自動走行制御装置100の機能構成例を示す図である。図1に示すように、本実施形態の自動走行制御装置100は、その機能構成として、目標線分取得部11、偏差検出部12、位置・方位制御部13、走行制御部14および目標線分切替部15を備えている。また、本実施形態の自動走行制御装置100には、経路データ記憶部200、位置・方位センサ300および操舵装置400が接続されている。
上記各機能ブロック11~15は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック11~15は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
経路データ記憶部200は、作業車両を自動走行させる際に設定される目標経路を示す経路データを記憶する。本実施形態では、図2に示すように、作業車両WVの全体の目標経路は複数の目標線分TP1,TP2,TP3,・・・を連結したものとなっており、自動走行制御装置100は、あらかじめ設定された複数の目標線分TP1,TP2,TP3,・・・から成る目標経路に沿って作業車両WVを自動的に走行させるように制御する。図2に示す破線は、自動走行制御装置100により制御されて作業車両WVが走行する軌跡を示している。
目標経路の設定は、公知の技術を用いてあらかじめ行われ、その結果得られた経路データが経路データ記憶部200に記憶される。本実施形態では、一例として、作業車両が圃場の一辺と平行に直進し、直進の終点である圃場端において180度旋回をした後、旋回前の走行経路と平行に直進するような往復走行を繰り返す走行経路が設定されているものとする。この場合、経路データは、圃場の一端付近から他端付近までの往路を表す目標線分(以下、往路目標線分という)と、圃場の他端付近から一端付近までの復路を表す目標線分(以下、復路目標線分という)と、往路目標線分の終端と復路目標線分の始端との間および復路目標線分の終端と往路目標線分の始端との間を結ぶ目標線分(以下、旋回目標線分という)との組み合わせにより構成される。
位置・方位センサ300は、作業車両の現在位置および現在方位を検出するセンサである。位置・方位センサ300は、例えば、GNSS(Global Navigation Satellite System:全球測位衛星システム)により構成される。一例として、位置・方位センサ300は、GPS(Global Positioning System)受信機であり、複数のGPS衛星から送られてくる電波をGPSアンテナで受信して、3次元測位処理あるいは2次元測位処理を行って作業車両の絶対位置および絶対方位を計算する。
また、位置・方位センサ300は、ジャイロセンサ、加速度センサや磁気方位センサを用いた自立航法センサであってもよい。自立航法センサは、所定走行距離毎に1個のパルスを出力して作業車両の移動距離を検出する距離センサと、作業車両の回転角度(移動方位)を検出する振動ジャイロ等の角速度センサ(相対方位センサ)とを含む。自立航法センサは、これらの距離センサおよび角速度センサによって車両の相対位置および相対方位を検出する。なお、距離センサに代えて加速度センサを用いてもよい。
なお、ここに示した位置・方位センサ300は一例に過ぎず、これに限定されるものではない。作業車両の現在位置および現在方位を検出可能なセンサであれば、何れを用いてもよい。
操舵装置400は、後述するようにして自動走行制御装置100により算出された目標曲率に基づいて、作業車両の操舵を制御する。以下、自動走行制御装置100の機能構成について詳細に説明する。
目標線分取得部11は、経路データ記憶部200に記憶されている経路データに基づいて、目標線分を取得する。上述のように、本実施形態では、作業車両が圃場内を往復走行する際の目標とすべき目標経路が設定されており、その目標経路を表す経路データが経路データ記憶部200に記憶されている。目標線分取得部11は、直進走行しているときの走行制御に必要な目標線分(往路目標線分、復路目標線分の何れか)や、旋回時の走行制御に必要な目標線分(旋回目標線分、往路目標線分、復路目標線分の何れか)を適宜取得する。
本実施形態では、目標線分取得部11は、現在の制御対象としている目標線分TP1および次に制御対象とする目標線分TP2を経路データ記憶部200から取得して偏差検出部12に出力する。ここで、目標線分取得部11は、目標線分切替部15から供給される切替指示に応じて、経路データ記憶部200から取得する目標線分TP1,TP2の切り替えを行う。すなわち、目標線分取得部11は、目標線分切替部15から切替指示を受けたときに、それまで次の目標線分TP2として取得していたものを現在の目標線分TP1とするように切り替えるとともに、新たに次の目標線分TP2を経路データ記憶部200から取得し、これらの新たな組み合わせの目標線分TP1,TP2を偏差検出部12に出力する。
偏差検出部12は、目標線分取得部11により取得された目標線分TP1,TP2を入力するとともに、位置・方位センサ300により検出された作業車両の現在位置および現在方位を入力する。位置・方位センサ300としてGPS受信機を用いている場合、GPS受信機からは作業車両の現在の絶対位置および絶対方位を示す信号が出力される。偏差検出部12は、このGPS受信機から出力される絶対位置および絶対方位をもとに、経路データ記憶部200に経路データとして記憶されている目標経路の座標系上における作業車両の現在位置および現在方位を検出する。
また、位置・方位センサ300として自立航法センサを用いている場合、自立航法センサからは作業車両の現在の相対位置および相対方位を示す信号が出力される。偏差検出部12は、この自立航法センサから出力される相対位置および相対方位から絶対位置および絶対方位を計算し、当該計算した絶対位置および絶対方位をもとに、経路データ記憶部200に経路データとして記憶されている目標経路の座標系上における作業車両の現在位置および現在方位を検出する。
偏差検出部12は、作業車両に搭載された位置・方位センサ300からの出力に基づいて上述のようにして検出した作業車両の現在位置および現在方位と、目標線分取得部11により取得された目標線分TP1,TP2とに基づいて、目標線分TP1,TP2に対する自車方位の現在の方位偏差および目標線分TP1,TP2に対する自車位置の現在の位置偏差を検出する。ここで、偏差検出部12は、現在の目標線分TP1に対する位置偏差および方位偏差を検出するとともに、次の目標線分TP2に対する位置偏差および方位偏差を検出する。
図3は、偏差検出部12が検出する方位偏差および位置偏差を模式的に示す図である。図3は、作業車両WVを目標線分TPに沿って走行させるように制御する際の状況を示している。図3に示すように、作業車両WV上の所定の一点O(図3では一例として、車体の前後方向の中心線CLと、左右の後輪間を結ぶ直線との交点としている)を基点とし、車体の前後方向の中心線CLと、作業車両WV上の所定の一点Oを通り目標線分TPに平行な線PLとが成す角度が方位偏差θである。また、目標線分TPに平行な線PLと目標線分TPとの距離が位置偏差pである。
以下の説明において、位置偏差pは、目標線分TPの進行方向(図の矢印の向き)を基準として、作業車両WVが目標線分TPの右側にいるときに正の値、目標線分TPの左側にいるときに負の値をとるものとする。方位偏差θは、目標線分TPに対して走行車両WVが右方向に向かって走行している場合に正の値、左方向に向かって走行している場合に負の値をとるものとする。さらに、後述する曲率φは作業車両WVが右に旋回しているときの曲率が正の値をとり、曲率勾配λは右方向に操舵するときに正の値をとるものとする。曲率φは、作業車両WVの操舵角と一定の関係を持つパラメータである。また、曲率勾配λは、作業車両WVの操舵速度および走行速度と一定の関係を持つパラメータである。
また、以下の説明において、目標線分TPに対する位置偏差をp、方位偏差をθ、曲率をφ、曲率勾配をλで表し、現在の目標線分TP1に対する値であることを明示する場合はp1やθ1、次の目標線分に対する値であることを明示する場合はp2やθ2と表記し、数字を省略した場合は、目標線分TP1、目標線分TP2の両方に対する説明であるものとする。なお、実際の曲率φと曲率勾配λについては目標線分によらずに一定の値となるため数字を付さないが、計算上の値の場合はどちらの目標線分に対する計算において使用しているかを明示するために数字を付して説明する。また必要に応じて計算上の値であることを明示するために、目標曲率φt、仮位置偏差p’などと追加の記号を付す場合があるが、これらについても同様とする。
位置・方位制御部13は、目標線分TPに対する位置偏差pおよび方位偏差θと、車両の操舵角に関連する曲率φとを3軸とする3次元空間において、位置偏差pおよび方位偏差θを何れもゼロに収束させることが可能な目標曲率φtを算出する関数であって、位置偏差p、方位偏差θおよび目標曲率φtの組み合わせとして採り得る値により定まる座標の集合からなる曲面によって3次元空間を2分する関数を用いて、作業車両WVが旋回する際に用いる走行の制御値を算出する。制御値の一例として、本実施形態では、偏差検出部12により検出された方位偏差θおよび位置偏差pを解消するための目標曲率φtを算出する。すなわち、位置・方位制御部13は、目標線分TPに対する位置偏差pおよび方位偏差θを何れもゼロに収束させることが可能な目標曲率φtを算出する関数として、位置偏差pおよび方位偏差θに基づいて目標曲率φtを算出する関数Φを用いて、φt=Φ(p,θ)と表記される。実際には曲率φや目標曲率φtの代わりに、舵角や目標舵角、クローラの左右の回転差やその目標値を利用してもよいが、いずれも曲率を変化させることが目的であり、以下ではこれらすべてを曲率φや目標曲率φtと表現する。
なお、後述する図5に示す目標曲率設定部13A、仮位置偏差算出部13Bおよび仮曲率勾配算出部13C、図13に示す目標曲率設定部13A’、図10に示す仮位置偏差算出部15Bおよび仮曲率勾配算出部15C、図14に示す目標曲率設定部15E、あるいは図15に示す想定方位設定部15Fと、関数Φと、制御面40とは全て同じ機能を示すものである。すなわち、ブロック図で示された機能を数学的表現にしたものが関数Φであり、3次元曲面で空間に図示したものが制御面40である。従って、「算出」とは、ブロック図に示される手順によるもの、数学的表現に従って演算されるもの、あるいは空間座標として記憶されているものの何れかから、所望の値を取り出すことをいう。
ここで、位置・方位制御部13は、偏差検出部12により検出された現在の目標線分TP1に対する位置偏差p1および方位偏差θ1に基づいて、これらを解消するための目標曲率φ1tを算出する。これは関数Φを用いて、関数φ1t=Φ(p1,θ1)と表記され、関数Φには、上述の条件を満たす関数であって、位置偏差p1および方位偏差θ1から目標曲率φ1tを算出することが可能な関数であれば何れも用いることが可能である。なお、その具体例については後述する。
図4は、位置・方位制御部13が作業車両WVの走行制御に用いる関数により表される3次元空間の一例および後述する目標線分切替部15の処理内容を説明するための模式図である。図4は、曲率φ、位置偏差pおよび方位偏差θの3つの変数をそれぞれ座標軸として有する直交系の3次元空間を示している。曲率φ、位置偏差pおよび方位偏差θは、何れも正の値と負の値とを有し、曲率φ、位置偏差p、方位偏差θの値が何れもゼロの位置が3次元空間の原点Oである。
上述のように、位置・方位制御部13は、目標線分TPに対する位置偏差pおよび方位偏差θを何れもゼロに収束させることが可能な目標曲率φtを算出する関数Φを含む式φt=Φ(p,θ)を用いる。この場合、3次元空間は、この式φt=Φ(p,θ)を満たす値として取り得る3つの値(p,θ,φt)の組み合わせから成る3次元座標によって特定される3次元空間上の座標の集合から成る曲面(以下、制御面という)40を境界として、2つの領域41,42に2分される。
位置・方位制御部13が式φt=Φ(p,θ)により算出する目標曲率φtを用いて走行制御部14が行う作業車両WVの走行制御は、3つの値(p,θ,φt)の組み合わせによって特定される3次元空間上の座標を、制御面40の上を徐々に移動させながら原点Oに近づけていく制御に相当する。本実施形態において用いる目標線分TPは直線状であるため、位置・方位制御部13は、位置偏差pおよび方位偏差θが何れもゼロに収束した状態で曲率φもゼロに収束するように、すなわち、3つの値(p,θ,φt)の組み合わせによって特定される3次元空間上の座標が原点Oに徐々に近づくように、目標曲率φtを逐次算出する。
走行制御部14は、位置・方位制御部13により現在の目標線分TP1について算出された目標曲率φ1tに対して実際の曲率φが一致するように作業車両WVの走行を制御する。本実施形態では、走行制御部14は、位置・方位制御部13により算出された目標曲率φ1tをもとに操舵角を決定し、当該決定した操舵角に基づいて作業車両WVの走行を制御する。すなわち、走行制御部14は、位置・方位制御部13により算出された目標曲率φ1tを所定の相関関数に基づいて操舵角に変換し、これによって得られた操舵角情報を操舵装置400に出力する。操舵装置400は、走行制御部14から取得した操舵角情報に基づいてモータ電圧を決定し、作業車両WVの操舵を制御する。
目標線分切替部15は、位置・方位制御部13に入力される位置偏差pおよび方位偏差θと、位置・方位制御部13が出力する目標曲率φtとが採り得る値によって定まる曲面によって2分される3次元空間において、偏差検出部12により検出された次の目標線分TP2に対する位置偏差p2および方位偏差θ2と現在の曲率φとからなる3次元座標を監視し、当該3次元座標が曲面により2分される一方の領域と他方の領域との境界に達するか当該境界を跨いで変位した状態といえるタイミングで、次の目標線分TP2を現在の目標線分TP1とするように切り替える。
本実施形態において、目標線分切替部15は、上述の関数を用いて算出される所定値(詳細は後述する)に基づいて、現在の目標線分TP1に対する走行制御から次の目標線分TP2に対する走行制御への切り替えを制御する。具体的には、目標線分切替部15は、偏差検出部12により検出された次の目標線分TP2に対する位置偏差p2および方位偏差θ2と現在の曲率φとを用いて関数により所定値を算出し、位置偏差p2、方位偏差θ2および現在の曲率φからなる3次元空間における座標が、当該所定値を用いて表される3次元空間上の座標に達するか当該座標を跨いで変位した状態といえるタイミングで、次の目標線分TP2を現在の目標線分TP1とするように切り替える。
ここで、位置偏差p2、方位偏差θ2および現在の曲率φからなる3次元空間における座標が、所定値により表される3次元空間上の座標(以下、監視座標という)に達するか当該監視座標を跨いで変位した状態とは、逐次算出される位置偏差p2、方位偏差θ2および現在の曲率φからなる座標(p2,θ2,φ)が、所定値により表される3次元空間上の監視座標が存在する図4の制御面40に一致するか、制御面40を跨いで一方の領域41から他方の領域42へ、またはその逆の方向へと変位した状態をいう。
図4では、座標(p2,θ2,φ)が、次の目標線分TP2との関係で算出される監視座標が存在する制御面40に対して一方の領域41にある状態を軌跡43で表している。また、座標(p2,θ2,φ)が制御面40に一致した状態または制御面40を跨いで変位した直後の状態を★印の点44で表している。座標(p2,θ2,φ)が点44となったときが目標線分TP1,TP2の切り替えタイミングである。また、軌跡45は、次の目標線分TP2を現在の目標線分TP1に切り替えた後に、当該現在の目標線分TP1との関係で位置・方位制御部13により制御される動作の軌跡を示している。
座標(p2,θ2,φ)が軌跡43で表している位置にあるときは、当該座標(p2,θ2,φ)が制御面40から離れた状態にある。このように、座標(p2,θ2,φ)が制御面40から離れているときに目標線分TP1,TP2を切り替えると、切り替え後の現在の目標線分TP1との関係で算出される座標(p1,θ1,φ)を制御面40に近づけるための余計な制御が必要となり、作業車両WVに無駄な動きが生じる。
これに対し、座標(p2,θ2,φ)が制御面40に一致するか制御面40を跨いで変位したときに目標線分TP1,TP2を切り替えれば、座標(p1,θ1,φ)を制御面40に近づけるための余計な制御を行うことが不要であり、作業車両WVに無駄な動きが生じるのを抑止することができる。座標(p2,θ2,φ)が制御面40に一致したタイミングで目標線分TP1,TP2を切り替えるのが理想的であるが、所定値を算出する時間間隔の間に、座標(p2,θ2,φ)が制御面40に一致するタイミングを過ぎてしまうこともある。この場合は、座標(p2,θ2,φ)が制御面40を跨いで変位したことを検知したタイミングで目標線分TP1,TP2を切り替える。
以下に、位置・方位制御部13による具体的な処理例を説明する。図5は、位置・方位制御部13の機能構成例を示すブロック図である。図5に示すように、位置・方位制御部13は、具体的な機能構成として、目標曲率設定部13A、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cを備えている。
位置・方位制御部13は、目標曲率設定部13A、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cの動作によって目標曲率φ1tを算出する。すなわち、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cによって、現在の目標線分TP1に対する現在の方位偏差θ1を解消するために必要な仮曲率勾配λ1’を算出しつつ、当該仮曲率勾配λ1’に従って作業車両WVが走行したと仮定した場合に現在の目標線分TP1との間に生じる仮位置偏差p1’を算出する。そして、その仮位置偏差p1’を解消するために必要な目標曲率φ1tを目標曲率設定部13Aによって設定する。この動作を上述の関数Φを用いた式で表現すると、φ1t=Φ(p1,θ1)と表される。
目標曲率設定部13Aは、偏差検出部12により検出された現在の目標線分TP1に対する現在の方位偏差θ1および現在の位置偏差p1を仮位置偏差算出部13Bに供給するとともに、暫定目標曲率φ1t’を設定して仮位置偏差算出部13Bに供給し、仮位置偏差p1’を算出するよう仮位置偏差算出部13Bに指示をした後、仮位置偏差算出部13Bが算出した仮位置偏差p1’を受け取る。
目標曲率設定部13Aは、仮位置偏差算出部13Bから受け取った仮位置偏差p1’が所定の条件を満たすか否かを判定する。そして、所定の条件を満たす場合は、仮位置偏差算出部13Bが仮位置偏差p1’を算出する際に使用した暫定目標曲率φ1t’を目標曲率φ1tとして走行制御部14に対して出力する。一方、所定の条件を満たしていない場合は、新たに暫定目標曲率φ1t’を設定して仮位置偏差p1’を再算出するよう仮位置偏差算出部13Bに指示をする。
仮位置偏差算出部13Bは、目標曲率設定部13Aから与えられた暫定目標曲率φ1t’、現在の方位偏差θ1および現在の位置偏差p1を受け取ると、仮曲率勾配算出部13Cに仮曲率φ1’を与えるとともに、現在の方位偏差θ1を仮方位偏差θ1’として与え、仮曲率勾配λ1’の算出を指示する。仮位置偏差算出部13Bは、目標曲率設定部13Aから与えられた暫定目標曲率φ1t’、現在の方位偏差θ1、現在の位置偏差p1を初期条件として、仮曲率勾配算出部13Cにより算出された仮曲率勾配λ1’を用いて、仮方位偏差θ1’が解消する仮位置まで作業車両WVを走行させたと仮定した場合に生じる、現在の目標線分TP1(特許請求の範囲の所定位置に相当)との位置偏差である仮位置偏差p1’の算出を行う。
ここで、仮位置偏差算出部13Bは、作業車両WVの方位偏差θ1および位置偏差p1を算出する三角関数からなる非線形要素が含まれる演算(後述する(式2)(式3)(式4)に対応する演算)処理と、当該処理により算出される仮曲率φ1’および仮方位偏差θ1’を仮曲率勾配算出部13Cに供給して仮曲率勾配λ1’を算出する処理とを含むステップ処理を、仮方位偏差θ1’が解消されるまで順次繰り返す。そして、この繰り返しによって算出した仮位置偏差p1’を目標曲率設定部13Aに出力する。
仮曲率勾配算出部13Cは、仮位置偏差算出部13Bから与えられた仮曲率φ1’および仮方位偏差θ1’をゼロに収束させるような仮曲率勾配λ1’を算出する関係式(後述する(式1))に基づいて、仮位置偏差算出部13Bから指示された仮曲率φ1’および仮方位偏差θ1’を用いて仮曲率勾配λ1’を算出し、これを仮位置偏差算出部13Bに出力する。
以下に、目標曲率設定部13A、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cの処理内容をより詳細に説明する。
まず、目標曲率設定部13Aは、偏差検出部12により検出された現在の目標線分TP1に対する現在の方位偏差θ1および現在の位置偏差p1を仮位置偏差算出部13Bに供給するとともに、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cの演算処理に用いるための暫定目標曲率φ1t’を設定して仮位置偏差算出部13Bに供給し、仮位置偏差p1’を算出するよう仮位置偏差算出部13Bに指示をする。
仮位置偏差算出部13Bは、目標曲率設定部13Aから供給された現在の方位偏差θ1、現在の位置偏差p1および暫定目標曲率φ1t’を、仮位置偏差p1’を算出する際の値として用いる。また、仮位置偏差算出部13Bは、目標曲率設定部13Aから供給された暫定目標曲率φ1t’および現在の方位偏差θ1を、仮曲率勾配算出部13Cが仮曲率勾配λ1’を算出する際に使用する仮曲率φ1’および仮方位偏差θ1’の値として仮曲率勾配算出部13Cに供給する。
仮曲率勾配算出部13Cは、作業車両WVが旋回走行しているときの作業車両WVの旋回する曲率φ1と方位偏差θ1から、最終的に方位偏差θ1を解消するための制御値として、仮曲率φ1’が単位走行距離(例えば1m)当たりに変化する量である仮曲率勾配λ1’を算出する。
すなわち、仮曲率勾配算出部13Cは、仮方位偏差θ1’および仮曲率φ1’を変数として与えた上で、仮方位偏差θ1’および仮曲率φ1’がゼロに収束するために必要となる仮曲率勾配λ1’を、例えば次の(式1)に示す所定の関数Λを用いた計算によって算出する。
λ1’=Λ(θ1’,φ1’)・・・(式1)
この(式1)は、仮方位偏差θ1’および仮曲率φ1’がゼロに収束する機能を持った式であり、その一例として、λ1’=-Aθ1’-Bφ1’を用いることが可能である(A,Bはシミュレーションまたは実機の動作から適宜設定されるパラメータである)。
具体的には、仮位置偏差算出部13Bから曲率φの値および方位偏差θ1の値としての仮曲率φ1’および仮方位偏差θ1’が与えられる都度、(式1)に基づいて仮曲率勾配λ1’を算出し、仮位置偏差算出部13Bに返す。なお、仮位置偏差算出部13Bから仮曲率勾配算出部13Cに与えられる仮曲率φ1’および仮方位偏差θ1’の初期値は、目標曲率設定部13Aから供給された暫定目標曲率φ1t’および現在の方位偏差θ1の値である。
仮方位偏差θ1’および仮曲率φ1’がゼロに収束するとは、両方の値が完全にゼロに等しくなることを必須とするものではなく、それぞれが所定の閾値未満となることを含む。あるいは、仮方位偏差θ1’および仮曲率φ1’から所定の算出式によって算出される評価値が所定の閾値未満となることを含む。本明細書では、このように仮方位偏差θ1’および仮曲率φ1’が所定の収束条件(以下、方位偏差収束条件という)を満たした状態を、仮方位偏差θ1’が解消された状態と表現する。
なお、仮方位偏差θ1’および仮曲率φ1’の値が与えられれば、これらをゼロに収束するために必要となる仮曲率勾配λ1’の値は(式1)によって一義的に定まる。つまり、仮方位偏差θ1’および仮曲率φ1’の値が与えられれば、(式1)により一の仮曲率勾配λ1’を得ることができる。そこで、仮曲率勾配λ1’の値を仮方位偏差θ1’および仮曲率φ1’の値と紐づけした値の情報として記憶媒体に記憶しておき、仮曲率勾配算出部13Cは、与えられた仮方位偏差θ1’および仮曲率φ1’の値をもとに仮曲率勾配λ1’の値を記憶媒体から読み出して利用するようにしてもよい。このように記憶媒体にデータをあらかじめ記憶しておいて、それを読み出して利用する構成とすることにより、処理時間を短縮することができる。なお、記憶媒体に記憶されるデータは離散値となるので、それを補間するための計算を行うようにしても良い。
この仮曲率勾配λ1’の算出の際に、仮曲率勾配算出部13Cは、仮方位偏差θ1’を解消することのみを考慮し、位置偏差を解消することは考慮しない。そのため、仮に、仮曲率勾配算出部13Cにより算出される仮曲率勾配λ1’に従って作業車両WVを走行させた場合、図6に示すように、仮方位偏差θ1’が解消する時点(作業車両WVの中心線CL1が目標線分TP1に平行になる時点)の仮位置で、作業車両WVの位置と目標線分TP1との間に位置偏差(仮位置偏差p1’)が生じ得る。なお、作業車両WVが圃場を往復走行するときの実際の旋回は、図6に示す状況よりも大きな曲率φで急旋回するが、ここでは説明の便宜上、実際よりも緩やかな曲率φで旋回する様子を示している。以下に説明する他の図面も同様である。
このように、実際の現在位置から、仮曲率勾配算出部13Cにより算出された仮曲率勾配λ1’に従って仮方位偏差θ1’が解消される仮位置まで作業車両WVを走行させたと仮定した場合、仮位置偏差p1’がゼロになるとは限らない。
そこで、仮位置偏差算出部13Bは、仮曲率勾配算出部13Cにより算出された仮曲率勾配λ1’に従って仮方位偏差θ1’が解消される仮位置まで作業車両WVを走行させたと仮定した場合に生じる、現在の目標線分TP1との仮位置偏差p1’を求める。この仮位置偏差p1’を求める際に、仮位置偏差算出部13Bは、仮方位偏差θ1’の三角関数値を用いた演算を行う。
すなわち、仮位置偏差算出部13Bは、仮曲率勾配λ1’と仮曲率φ1’、仮曲率φ1’と仮方位偏差θ1’および仮方位偏差θ1’と仮位置偏差p1’との関係を示した次の(式2)(式3)(式4)に従って、(式1)により算出された仮曲率勾配λ1’に従って仮方位偏差θ1’が解消されるまで作業車両WVを走行させたと仮定した場合に生じる目標線分TP1との仮位置偏差p1’を算出する。ここで、Lは走行距離を表す。
具体的には、仮位置偏差算出部13Bは、目標曲率設定部13Aから供給された暫定目標曲率φ1t’、現在の方位偏差θ1および現在の位置偏差p1を初期値とし、方位偏差θ1が解消したと判断されるまで、都度、仮曲率勾配算出部13Cから仮曲率勾配λ1’の値を取得しつつ(式2)(式3)(式4)の演算を繰り返す。そして方位偏差θ1が解消されたと判断されたときの位置偏差の値を仮位置偏差p1’として目標曲率設定部13Aに供給する。
より具体的には、仮位置偏差算出部13Bは、(式2)(式3)(式4)を微小区間ごとに繰り返し演算するものであり、目標曲率設定部13Aから供給された暫定目標曲率φ1t’、現在の方位偏差θ1および現在の位置偏差p1を初期値とし、演算により得られた曲率の値(仮曲率φ1’)、方位偏差の値(仮方位偏差θ1’)および仮方位偏差p1’を再び(式2)(式3)(式4)に投入するとともに、仮曲率φ1’、仮方位偏差θ1’を仮曲率勾配算出部13Cに与える。そして得られた仮曲率勾配λ1’、仮曲率φ1’および仮方位偏差θ1’をこれらの式に繰り返し投入する演算を、仮方位偏差θ1’が解消したと判断されるまで繰り返す。仮位置偏差算出部13Bは、仮方位偏差θ1’が解消したと判断すると、その時の仮位置偏差p1’を目標曲率設定部13Aに送る。
なお、仮曲率勾配算出部13Cおよび仮位置偏差算出部13Bは、次の(式5)に示すように、曲率φについて設定された下限値および上限値の範囲内で、仮方位偏差θ1’を解消するための仮曲率勾配λ1’を算出するとともに、仮位置偏差p1’を求める。ここで、φminは曲率として採り得る値の最小値(左方向に最大限操舵した状態に相当する)、φmaxは曲率として採り得る値の最大値(右方向に最大限操舵した状態に相当する)である。φminの絶対値とφmaxの絶対値は同じであってもよいし、異なっていてもよい。
φmin≦φ1’(L)≦φmax ・・・(式5)
目標曲率設定部13Aは、仮位置偏差算出部13Bにより算出された仮位置偏差p1’を受けて、当該仮位置偏差p1’の値に応じて暫定目標曲率φ1t’を変更し、変更後の暫定目標曲率φ1t’を仮位置偏差算出部13Bに供給することにより、仮位置偏差p1’を再算出するように指示する。目標曲率設定部13Aは、この処理を繰り返し行うことにより、都度算出される仮位置偏差p1’に基づいて、現在の位置偏差p1を解消させるための制御値として目標曲率φ1tを設定する。本実施形態では、仮位置偏差算出部13Bにより算出される仮位置偏差p1’を微小化させるような目標曲率φ1tを設定する。
すなわち、目標曲率設定部13Aは、まず、暫定目標曲率φ1t’を設定して仮位置偏差算出部13Bに供給し、その応答として、現在の目標線分TP1との仮位置偏差p1’を仮位置偏差算出部13Bから得る。ここで、この仮位置偏差p1’の絶対値が大きくて所定の収束条件(以下、位置偏差収束条件という)を満たしておらず、仮位置偏差p1’が解消されていないと判断される場合は、目標曲率設定部13Aは、暫定目標曲率φ1t’の値を変えて仮位置偏差算出部13Bに供給し、仮位置偏差p1’の算出を再度行わせることにより、仮位置偏差算出部13Bから仮位置偏差p1’を再度取得する。
再度取得した仮位置偏差p1’が位置偏差収束条件を満たしていない場合は、目標曲率設定部13Aは、暫定目標曲率φ1t’の値を再度変えて仮位置偏差算出部13Bに供給し、仮位置偏差p1’の計算を再実行させることにより、仮位置偏差算出部13Bから仮位置偏差p1’を再度取得する。以降、再度取得した仮位置偏差p1’が位置偏差収束条件を満たすまでこの動作を繰り返し、位置偏差収束条件を満たしたときに用いた暫定目標曲率φ1t’の値を、最終的に求める目標曲率φ1tとして走行制御部14に出力する。
仮位置偏差p1’が位置偏差収束条件を満たしていない場合に暫定目標曲率φ1t’を再設定する方法としては、任意の方法を用いることが可能である。例えば、暫定目標曲率φ1t’の値をランダムに変えるようにしてもよいし、公知の技術に従って処理のルールに基づき値を変えるようにしてもよい。本実施形態では、公知の二分法によって暫定目標曲率φ1t’の値を再設定する。すなわち、目標曲率設定部13Aは、仮位置偏差算出部13Bにより仮位置偏差p1’が求められる毎に、仮位置偏差算出部13Bに指示した暫定目標曲率φ1t’の値を、現在の目標線分TP1に対する仮位置偏差p1’の方向(仮位置偏差p1’が正の値か負の値か)に応じて上端値または下端値の何れかに設定した上で、当該上端値または下端値を設定した範囲内で新たに暫定目標曲率φ1t’を設定し、仮位置偏差p1’を再算出するよう仮位置偏差算出部13Bに指示する。そして、このような処理を繰り返し行うことにより、仮位置偏差p1’を微小化させるような目標曲率φ1tを設定する。
上述したように、目標曲率設定部13Aは、仮位置偏差p1’を微小化させることを位置偏差収束条件として用いている。仮位置偏差p1’が微小化するとは、例えば、仮位置偏差p1’の絶対値が所定の閾値未満になることをいう。なお、二分法によって暫定目標曲率φt’の値を再設定する場合は、仮位置偏差p1’の算出を繰り返すことによって、仮位置偏差p1’が徐々に小さくなっていくことがある程度保証される。そのため、仮位置偏差p1’が実際に所定の閾値未満となったか否かを判定することに代えて、目標曲率設定部13Aの動作の繰り返し回数が所定の閾値に達したことを検出することをもって、仮位置偏差p1’を微小化させるための位置偏差収束条件を満たしたとみなすことが可能である。
図7および図8は、位置・方位制御部13の動作例を示すフローチャートである。図8に示すフローチャートは、目標曲率設定部13Aの動作例を示すものであり、例えば、作業車両WVの自動走行制御を開始した後、所定時間毎または所定走行距離毎に繰り返し実行される。また、図7に示すフローチャートは、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cの動作例を示すものであり、図8のステップS13において呼び出されて実行されるものである。
図7において、仮位置偏差算出部13Bは、まず、仮曲率勾配λ1’および仮位置偏差p1’を算出する際の初期値を設定する(ステップS1)。すなわち、仮位置偏差算出部13Bは、仮位置偏差p1’の初期値を現在の位置偏差p1に設定し、仮方位偏差θ1’の初期値を現在の方位偏差θ1の値に設定し、仮曲率φ1’の初期値を暫定目標曲率φ1t’の値に設定する。これらの初期値は何れも、目標曲率設定部13Aから与えられる。仮位置偏差算出部13Bは、設定した仮方位偏差θ1’および仮曲率φ1’を仮曲率勾配算出部13Cに供給する。
次に、仮曲率勾配算出部13Cは、仮位置偏差算出部13Bから供給された仮方位偏差θ1’および仮曲率φ1’を用いて、上述した(式5)に示す制約条件のもと、(式1)に従って仮曲率勾配λ1’を算出する(ステップS2)。次いで、仮位置偏差算出部13Bは、ステップS2で仮曲率勾配算出部13Cが算出した仮曲率勾配λ1’に従って作業車両WVが所定走行距離ΔLだけ移動したと仮定した場合の仮位置偏差p1’、仮方位偏差θ1’および仮曲率φ1’を、上述の(式2)~(式4)に従って算出する(ステップS3)。
例えば、仮位置偏差算出部13Bは、公知のオイラー法に従って、仮位置偏差p1’、仮方位偏差θ1’および仮曲率φ1’を算出する。すなわち、新たな仮位置偏差p1’は、現在の仮位置偏差p1’の値に(sinθ1’)・ΔLの値を加えた値として算出する。新たな仮方位偏差θ1’は、現在の仮方位偏差θ1’の値にφ1’・ΔLの値を加えた値として算出する。新たな仮曲率φ1’は、現在の仮曲率φ1’の値にλ1’・ΔLの値を加えた値として算出する。なお、ここに示したオイラー法は演算の一例であって、これに限定されるものではない。例えば、より精度の高いルンゲクッタ法など用いて算出することも可能である。
そして、仮位置偏差算出部13Bは、ステップS3で算出した仮方位偏差θ1’および仮曲率φ1’が所定の方位偏差収束条件を満たしたか否かを判定する(ステップS4)。ここで、所定の方位偏差収束条件を満たしていないと判定された場合、処理はステップS2に戻る。一方、所定の方位偏差収束条件を満たすと判定された場合、仮位置偏差算出部13Bは、そのときステップS3で算出された仮位置偏差p1’を目標曲率設定部13Aに出力する(ステップS5)。これにより、図8のステップS13における1回の処理が終了する。
図8において、目標曲率設定部13Aは、まず、二分法の初期値を設定する(ステップS11)。すなわち、目標曲率設定部13Aは、曲率を二分する範囲を定める上端値φHおよび下端値φLの初期値として、上端値φHの初期値をφmax、下端値φLの初期値をφminに設定するとともに、暫定目標曲率φt’の初期値をφmaxとφminの平均値(左右の最大曲率が等しい通常の車両であればφmin=-φmaxとなるため、その場合の初期値は0)に設定する。また、目標曲率設定部13Aは、仮位置偏差p1’を微小化させるための位置偏差収束条件を判定するために用いる処理回数のカウント値iの初期値を0に設定する(ステップS12)。
次に、目標曲率設定部13Aは、現在設定されている暫定目標曲率φt’の値を図7に示す計算の初期値として設定し、図7に示すフローチャートの処理を仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cに実行させることにより、仮位置偏差算出部13Bから仮位置偏差p1’を得る(ステップS13)。そして、これにより算出された仮位置偏差p1’が正の値か否かを判定する(ステップS14)。仮位置偏差p1’が正の値である場合は、作業車両WVが現在の目標線分TP1の右側で仮方位偏差θ1’が解消された場合に相当する。一方、仮位置偏差p1’が負の値である場合は、作業車両WVが現在の目標線分TP1の左側で仮方位偏差θ1’が解消された場合に相当する。
仮位置偏差p1’が正の値であると判定された場合、目標曲率設定部13Aは、曲率を二分する範囲の上端値φHに現在の暫定目標曲率φ1t’を設定した上で(ステップS15)、当該上端値φH(=φ1t’)と下端値φLとの平均値を新たに暫定目標曲率φ1t’として設定する(ステップS17)。図9(a)は、この場合の設定内容を模式的に示す図である。なお、図9の模式図は、図8の処理を開始してから1回目(i=0)の処理におけるステップS17の処理内容を示しており、「現φ1t’」と書かれた現在の暫定目標曲率φ1t’の値が、ステップS11で初期値として設定されたφmaxとφminの平均値の場合(図9の場合は“0”)を示している。
図9(a)に示すように、現在位置p1が負の値(現在の目標線分TP1の左側)で仮位置偏差p1’が正の値(現在の目標線分TP1の右側)である場合は、現在の暫定目標曲率φ1t’の絶対値が小さ過ぎて、仮方位偏差θ1’が解消されるまでに作業車両WVが現在の目標線分TP1を超えてしまう状態に相当する。よって、この場合に目標曲率設定部13Aは、現在の暫定目標曲率φ1t’(これを上端値φHに設定する)と、暫定目標曲率φ1t’の値として設定可能な下端値φL(1回目の処理の場合は下限値φmin)との平均値を新たに暫定目標曲率φ1t’として設定することにより、作業車両WVがより急峻なカーブを描いて旋回するように設定を変える。
一方、仮位置偏差p1’が正の値ではない(負の値である)と判定された場合、目標曲率設定部13Aは、曲率を二分する範囲の下端値φLに現在の暫定目標曲率φ1t’を設定した上で(ステップS16)、当該下端値φL(=φ1t’)と上端値φHとの平均値を新たに暫定目標曲率φ1t’として設定する(ステップS17)。図9(b)は、この場合の設定内容を模式的に示す図である。
図9(b)に示すように、現在位置p1が負の値(現在の目標線分TP1の左側)で仮位置偏差p1’も負の値(現在の目標線分TP1の左側)である場合は、現在の暫定目標曲率φ1t’の絶対値が大き過ぎて、仮方位偏差θ1’が解消される位置において作業車両WVが目標線分TP1まで至らない状態に相当する。よって、この場合に目標曲率設定部13Aは、現在の暫定目標曲率φ1t’(これを下端値φLに設定する)と、暫定目標曲率φ1t’の値として設定可能な上端値φH(1回目の処理の場合は上限値φmax)との平均値を新たに暫定目標曲率φ1t’として設定することにより、作業車両WVがより緩やかなカーブを描いて旋回するように設定を変える。
その後、目標曲率設定部13Aは、処理回数のカウント値iをインクリメントし(ステップS18)、カウント値iが所定の閾値Nに達したか否か、すなわち、位置偏差収束条件を満たしたか否かを判定する(ステップS19)。ここで、処理回数iが所定の閾値Nにまだ達していない場合、処理はステップS13に戻る。一方、処理回数iが所定の閾値Nに達した場合、目標曲率設定部13Aは、現在設定されている暫定目標曲率φ1t’を、最終的に求める目標曲率φ1tに代入する(ステップS20)。目標曲率設定部13Aは目標曲率φ1tを走行制御部14に出力する(ステップS21)。これにより、目標曲率設定部13Aによる1回の処理が終了する。
次に、目標線分切替部15による具体的な処理例を説明する。図10は、目標線分切替部15の機能構成例を示すブロック図である。図11は、次の目標線分に対する仮位置偏差を説明するための図である。図10に示すように、目標線分切替部15は、具体的な機能構成として、判定部15A、仮位置偏差算出部15Bおよび仮曲率勾配算出部15Cを備えている。
目標線分切替部15は、仮位置偏差算出部15Bおよび仮曲率勾配算出部15Cの動作によって、図11に示すように次の目標線分TP2との仮位置偏差p2’を算出し、これを所定値として判定部15Aに出力する。そして、判定部15Aの動作によって、偏差検出部12により検出された次の目標線分TP2に対する位置偏差p2および方位偏差θ2と現在の曲率φとからなる3次元空間における座標(p2,θ2,φ)が、所定値(仮位置偏差p2’)を用いて表される3次元空間上の監視座標(図4の制御面40上に存在する座標)に達するか監視座標を跨いで変位した状態といえるタイミングで、次の目標線分TP2を現在の目標線分TP1とするように切り替えるよう、目標線分取得部11に対して目標線分TP1,TP2の切り替えを指示する。
ここで、判定部15Aは、仮位置偏差p2’がゼロであるか正の値であるか負の値であるかを監視することにより、座標(p2,θ2,φ)が、仮位置偏差p2’を用いて表される3次元空間上の監視座標(p2-p2’,θ2,φ)に達するか監視座標(p2-p2’,θ2,φ)を跨いで変位した状態といえるか否かを判定する。すなわち、判定部15Aは、仮位置偏差p2’がゼロとなったときに座標(p2,θ2,φ)が監視座標(p2-p2’,θ2,φ)に一致した判定する。また、仮位置偏差p2’が正の値から負の値に変化したときまたは負の値から正の値に変化したときに、座標(p2,θ2,φ)が監視座標(p2-p2’,θ2,φ)を跨いで変位したと判定する。
仮位置偏差算出部15Bおよび仮曲率勾配算出部15Cの処理内容は、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cの処理内容と同様であり、処理に使用する値が異なるのみである。すなわち、位置・方位制御部13の仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cは、現在の目標線分TP1との関係で算出または設定される各値(位置偏差p1、方位偏差θ1、仮方位偏差θ1’、仮曲率勾配λ1’、暫定目標曲率φ1t’、仮曲率φ1’)を用いて仮位置偏差p1’を算出するのに対し、目標線分切替部15の仮位置偏差算出部15Bおよび仮曲率勾配算出部15Cは、次の目標線分TP2との関係で算出または設定される各値(位置偏差p2、方位偏差θ2、仮方位偏差θ2’、仮曲率勾配λ2’、仮曲率φ2’)および現在の実際の曲率φを用いて、関数Φを用いた式φ=Φ(p2-p2’,θ2)に基づき仮位置偏差p2’を算出する。
すなわち、判定部15Aは、偏差検出部12により検出された次の目標線分TP2に対する現在の方位偏差θ2および現在の位置偏差p2を仮位置偏差算出部15Bに供給するとともに、走行制御部14から与えられる現在の曲率φを仮位置偏差算出部15Bに供給し、仮位置偏差p2’を算出するよう仮位置偏差算出部15Bに指示をした後、仮位置偏差算出部15Bが算出した仮位置偏差p2’を受け取る。これを所定時間毎または所定走行距離毎に繰り返す。
判定部15Aは、仮位置偏差算出部15Bから逐次受け取る仮位置偏差p2’がゼロであるか正の値であるか負の値であるかを監視することにより、座標(p2,θ2,φ)が、仮位置偏差p2’を用いて表される3次元空間上の監視座標(p2-p2’,θ2,φ)に達するか監視座標(p2-p2’,θ2,φ)を跨いで変位した状態といえるか否かを判定する。そして、座標(p2,θ2,φ)が監視座標(p2-p2’,θ2,φ)に達するか監視座標(p2-p2’,θ2,φ)を跨いで変位した状態といえると判定した場合、判定部15Aは、目標線分TP1,TP2の切替指示を目標線分取得部11に出力する。目標線分取得部11は、この切替指示を受けて、経路データ記憶部200から取得する目標線分TP1,TP2を切り替える。
仮位置偏差算出部15Bは、判定部15Aから与えられた現在の曲率φ、現在の方位偏差θ2および現在の位置偏差p2を受け取ると、仮曲率勾配算出部15Cに仮曲率φ2’を与えるとともに、現在の方位偏差θ2を仮方位偏差θ2’として与え、仮曲率勾配λ2’の算出を指示する。仮位置偏差算出部15Bは、判定部15Aから与えられた現在の曲率φ、現在の方位偏差θ2、現在の位置偏差p2を初期条件として、仮曲率勾配算出部15Cにより算出された仮曲率勾配λ2’を用いて、仮方位偏差θ2’が解消する仮位置まで作業車両WVを走行させたと仮定した場合に生じる、次の目標線分TP2(特許請求の範囲の所定位置に相当)との位置偏差である仮位置偏差p2’の算出を行う。
ここで、仮位置偏差算出部15Bは、作業車両WVの方位偏差θ2および位置偏差p2を算出する三角関数からなる非線形要素が含まれる演算(上述の(式2)(式3)(式4)に対応する演算)処理と、当該処理により算出される仮曲率φ2’および仮方位偏差θ2’を仮曲率勾配算出部15Cに供給して仮曲率勾配λ2’を算出する処理とを含むステップ処理を、仮方位偏差θ2’が解消されるまで順次繰り返す。そして、この繰り返しによって算出した仮位置偏差p2’を判定部15Aに出力する。
仮曲率勾配算出部15Cは、仮位置偏差算出部15Bから与えられた仮曲率φ2’および仮方位偏差θ2’をゼロに収束させるような仮曲率勾配λ2’を算出する関係式(上述の(式1)と同様の式)に基づいて、仮位置偏差算出部15Bから指示された仮曲率φ2’および仮方位偏差θ2’を用いて仮曲率勾配λ2’を算出し、これを仮位置偏差算出部15Bに出力する。
以上詳しく説明したように、本実施形態では、目標線分TPに対する位置偏差pおよび方位偏差θと、車両の操舵角に関連する曲率φとを3軸とする3次元空間において、位置偏差pおよび方位偏差θを何れもゼロに収束させることが可能な目標曲率φtを算出する関数であって、位置偏差p、方位偏差θおよび目標曲率φtの組み合わせとして採り得る値により定まる座標の集合によって3次元空間を2分する関数Φを用いて、車両が旋回する際に用いる走行の制御値として、位置偏差pおよび方位偏差θを解消するための目標曲率φtを算出し、当該算出した目標曲率φtに対して実際の曲率φが一致するように作業車両WVの走行を制御する自動走行制御装置100において、次の目標線分TP2に対する位置偏差p2および方位偏差θ2と現在の曲率φとを用いて関数Φを用いた式φ=Φ(p2-p2’,θ2)により算出される仮位置偏差p2’がゼロであるか正の値であるか負の値であるかを監視することにより、座標(p2,θ2,φ)が、仮位置偏差p2’を用いて表される3次元空間上の監視座標(p2-p2’,θ2,φ)に達するか当該監視座標(p2-p2’,θ2,φ)を跨いで変位した状態といえるタイミングで、次の目標線分TP2を現在の目標線分TP1とするように目標線分TP1,TP2の切り替えを行うようにしている。
このようなタイミングで目標線分TP1,TP2の切り替えを行うと、制御対象を現在の目標線分TP1から次の目標線分TP2(目標線分TP1,TP2を切り替えた後は現在の目標線分TP1となる)に切り替えた際に、切り替え後の現在の目標線分TP1との関係で特定される座標(p1,θ1,φ)が既に制御面40の上または近傍に存在することになる。そのため、座標(p1,θ1,φ)を制御面40に近づけて一致させるようにするための無駄な制御が不要となる。これにより、本実施形態によれば、現在の目標線分TP1から次の目標線分TP2に対する制御を適切なタイミングで切り替えることができ、作業車両WVに無駄な動作を生じさせることなく、次の目標線分TP2(切り替えた後の現在の目標線分TP1)についても、目標線分TP1に対する位置偏差p1および方位偏差θ1を迅速に解消することができるようになる。
なお、上記実施形態では、仮方位偏差θ’が解消する時点で作業車両WVの位置と目標線分TPとの間に生じる位置偏差を仮位置偏差p’とし、これが微小化する(ゼロに近づく)ように制御する例について説明したが、本発明はこれに限定されない。例えば、図12に示すように、現在位置から目標線分TPの方向に対する作業車両WVの移動量(作業車両WVの現在位置と、仮方位偏差θ’が解消される仮位置との位置偏差)を仮位置偏差p”とし、この仮位置偏差p”と現在の位置偏差pとの差が微小化する(ゼロに近づく)ように制御するようにしてもよい。このようにすれば、あらゆる条件の走行シミュレーションを事前に行って、その結果(仮位置偏差p”)をテーブル情報として保持することも可能であるという点で好ましい。
図13は、テーブル情報を用いた構成とする場合における位置・方位制御部13および目標線分切替部15の機能構成例を示すブロック図である。なお、この図13において、図5および図10に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
テーブル情報を用いた構成とする場合、位置・方位制御部13は、図13(a)に示すように、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cに代えて、テーブル情報を記憶した仮位置偏差取得部13Dを備えるようにする。また、目標曲率設定部13Aに代えて目標曲率設定部13A’を備えるようにする。この場合の仮位置偏差取得部13Dは、現在の目標線分TP1との関係で偏差検出部12により検出された現在の方位偏差θ1と、目標曲率設定部13A’が設定する暫定目標曲率φ1t’とを入力として、テーブル情報を参照することによって仮位置偏差p1”を取得するように構成する。
また、この構成の場合に目標曲率設定部13A’は、暫定目標曲率φ1t’を設定して仮位置偏差p1”を取得するよう仮位置偏差取得部13Dに指示した後、仮位置偏差取得部13Dが取得した仮位置偏差p1”を受け取る。そして、受け取った仮位置偏差p1”が所定の条件(位置偏差収束条件)を満たしていない場合は、新たに暫定目標曲率φ1t’を設定して仮位置偏差p1”を再取得するよう仮位置偏差取得部13Dに指示する。一方、受け取った仮位置偏差p1”が所定の条件を満たす場合は、仮位置偏差取得部13Dが仮位置偏差p1”を取得する際に使用した暫定目標曲率φ1t’を目標曲率φ1tとして走行制御部14に対して出力する。
同様に、目標線分切替部15は、図13(b)に示すように、仮位置偏差算出部15Bおよび仮曲率勾配算出部15Cに代えて、テーブル情報を記憶した仮位置偏差取得部15Dを備えるようにする。また、判定部15Aに代えて判定部15A’を備えるようにする。この場合の仮位置偏差取得部15Dは、次の目標線分TP2との関係で偏差検出部12により検出された現在の方位偏差θ2と、走行制御部14から判定部15A’を介して供給される現在の曲率φとを入力として、テーブル情報を参照することによって仮位置偏差p2”を取得するように構成する。
判定部15A’は、次の目標線分TP2との関係で仮位置偏差取得部15Dにより取得される仮位置偏差p2”と、偏差検出部12により検出された次の目標線分TP2に対する位置偏差p2とを比較することにより、座標(p2,θ2,φ)が、仮位置偏差p2”を用いて表される3次元空間上の監視座標(p2”,θ2,φ)(制御面40上の座標)に達するか監視座標(p2”,θ2,φ)を跨いで変位した状態といえるか否かを判定する。すなわち、判定部15A’は、仮位置偏差p2”と位置偏差p2との差がゼロとなったときに座標(p2,θ2,φ)が監視座標(p2”,θ2,φ)に一致した判定する。また、仮位置偏差 p2”と位置偏差p2との差が正の値から負の値に変化したときまたは負の値から正の値に変化したときに、座標(p2,θ2,φ)が監視座標(p2”,θ2,φ)を跨いで変位したと判定する。
また、上記実施形態では、目標線分切替部15は、次の目標線分TP2との関係で関数Φを用いた式φ=Φ(p2-p2’,θ2)または式φ=Φ(p2”,θ2)により算出される仮位置偏差p2’またはp2”を所定値として用い、当該仮位置偏差p2’を用いて表される3次元空間上の監視座標(p2-p2’,θ2,φ)または当該位置偏差p2”を用いて表される3次元空間上の監視座標(p2”,θ2,φ)をもとに目標線分TP1,TP2の切り替えを行う例について説明したが、本発明はこれに限定されない。例えば、次の目標線分TP2との関係で関数Φを用いた式φ2t=Φ(p2,θ2)により算出される目標曲率φ2tを所定値として用い、座標(p2,θ2,φ)が、当該目標曲率φ2tを用いて表される3次元空間上の監視座標(p2,θ2,φ2t)に達するか監視座標(p2,θ2,φ2t)を跨いで変位した状態といえるタイミングで目標線分TP1,TP2の切り替えを行うようにしてもよい。
図14は、この場合における目標線分切替部15の機能構成例を示すブロック図である。この図14において、図10に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図14に示すように、目標曲率φ2tを用いて表される3次元空間上の監視座標(p2,θ2,φ2t)をもとに目標線分TP1,TP2の切り替えを行う構成とする場合、目標線分切替部15は目標曲率設定部15Eを更に備えている。また、判定部15Aに代えて判定部15A”を備えている。
目標曲率設定部15Eの処理内容は目標曲率設定部13Aと同様である。すなわち、目標曲率設定部15Eは、目標曲率設定部13Aが現在の目標線分TP1との関係で目標曲率φ1tを算出する際に用いていた各値(位置偏差p1、方位偏差θ1、仮方位偏差θ1’、仮曲率勾配λ1’、暫定目標曲率φ1t’、仮曲率φ1’)に代えて、次の目標線分TP2との関係で算出または設定される各値(位置偏差p2、方位偏差θ2、仮方位偏差θ2’、仮曲率勾配λ2’および仮曲率φ2’)を用いて、関数Φを用いた式φ2t=Φ(p2,θ2)に基づき次の目標線分TP2に対する目標曲率φ2tを算出する。そして、算出した目標曲率φ2tを判定部15A”に供給する。
判定部15A”は、次の目標線分TP2との関係で関数Φを用いた式φ2t=Φ(p2,θ2)により算出される目標曲率φ2tと実際の曲率φとを比較することにより、座標(p2,θ2,φ)が、目標曲率φ2tを用いて表される3次元空間上の監視座標(p2,θ2,φ2t)(制御面40上の座標)に達するか監視座標(p2,θ2,φ2t)を跨いで変位した状態といえるか否かを判定する。すなわち、判定部15A”は、目標曲率φ2tと実際の曲率φとの差がゼロとなったときに座標(p2,θ2,φ)が監視座標(p2,θ2,φ2t)に一致した判定する。また、目標曲率φ2tと実際の曲率φとの差が正の値から負の値に変化したときまたは負の値から正の値に変化したときに、座標(p2,θ2,φ)が監視座標(p2,θ2,φ2t)を跨いで変位したと判定する。
また、上記実施形態では、目標線分TPに対する位置偏差pおよび方位偏差θを何れもゼロに収束させることが可能な目標曲率φtを算出する関数の一例として、仮位置偏差p’を算出し、さらに、当該仮位置偏差p’と現在の位置偏差pとを比較しながら、当該仮位置偏差p’を解消するために必要な目標曲率φtを算出するための関数Φを用いた式φt=Φ(p,θ)を用いる例について説明したが、本発明はこれに限定されない。例えば、位置・方位制御部13および目標線分切替部15において、仮位置偏差p’を算出し、さらに、当該仮位置偏差p’と現在の位置偏差pとを比較しながら、当該仮位置偏差p’を解消するために必要な想定方位θtを算出するため、関数をφ=Φ(p,θt)のように用いてもよい。
図15は、この場合における目標線分切替部15の機能構成例を示すブロック図である。この図15において、図14に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図15に示すように、関数Φを用いた式φ=Φ(p2,θ2t)を用いて算出される想定方位θ2tを用いて表される3次元空間上の監視座標(p2,θ2t,φ)をもとに目標線分TP1,TP2の切り替えを行う構成とする場合、判定部15A”に代えて判定部15A'''を備えるとともに、目標曲率設定部15Eに代えて想定方位設定部15Fを備えている。
想定方位設定部15Fは、仮位置偏差算出部15Bにより算出された仮位置偏差p2’と現在の位置偏差p2とを比較しながら、当該仮位置偏差p2’がゼロとなる仮想の方位である想定方位θ2tを算出する。例えば、図9にて説明した2分法と同様の方法により、目標曲率φ2tに代えて想定方位θ2tを算出する。そして、算出した想定方位θ2tを判定部15A'''に出力する。
判定部15A'''は、次の目標線分TP2との関係で関数φ=Φ(p2,θ2t)により算出される想定方位θ2tを所定値として用い、座標(p2,θ2,φ)が、想定方位θ2tを用いて表される3次元空間上の監視座標(p2,θ2t,φ)(制御面40上の座標)に達するか監視座標(p2,θ2t,φ)を跨いで変位した状態といえるタイミングで、次の目標線分TP2を現在の目標線分TP1とするように切り替える。
ここで、判定部15A'''は、次の目標線分TP2との関係で関数φ=Φ(p2,θ2t)により算出される想定方位θ2tと、目標線分TP2に対する方位偏差θ2とを比較することにより、座標(p2,θ2,φ)が、想定方位θ2tを用いて表される3次元空間上の監視座標(p2,θ2t,φ)(制御面40上の座標)に達するか監視座標(p2,θ2t,φ)を跨いで変位した状態といえるか否かを判定する。すなわち、判定部15A'''は、想定方位θ2tと実際の現在方位θとの差がゼロとなったときに座標(p2,θ2,φ)が監視座標(p2,θ2t,φ)に一致したと判定する。また、想定方位θ2tと実際の現在方位θとの差が正の値から負の値に変化したときまたは負の値から正の値に変化したときに、座標(p2,θ2,φ)が監視座標(p2,θ2t,φ)を跨いで変位したと判定する。
上記図14および図15に示した変形例は、図12に示す仮位置偏差p”を適用して実施することも可能である。すなわち、図14および図15に示した仮位置偏差算出部15Bおよび仮曲率勾配算出部15Cに代えて、図13に示した仮位置偏差取得部15Dを用いるようにしてもよい。
また、上記実施形態では、目標線分TPに対する位置偏差pおよび方位偏差θを何れもゼロに収束させることが可能な目標曲率φtを算出する関数の一例として、方位偏差θおよび位置偏差pを算出する三角関数からなる非線形要素が含まれる演算(上述した(式2)(式3)(式4)に対応する演算)によって仮位置偏差p’を求める関数を用いて非線形制御を行う例について説明したが、本発明はこれに限定されない。
例えば、仮位置偏差p’を求めることなく、φt=-a・p-b・sinθ(a,bは係数)のような数式ベースの関数を用いて非線形制御を行うようにしてもよい。また、φt=-a・p-b・θ(a,bは係数)のような関数を用いて線形制御を行うようにしてもよい。これらの場合、目標線分切替部15は、例えば、次の目標線分TP2との関係で上記の関数により算出される目標曲率φ2tを所定値として用い、目標曲率φ2tと実際の曲率φとを比較する(目標曲率φ2tと実際の曲率φとの差がゼロであるか正の値であるか負の値であるかを監視する)ことにより、座標(p2,θ2,φ2t)が、目標曲率φ2tを用いて表される3次元空間上の監視座標(p2,θ2,φ2t)に達するか監視座標(p2,θ2t,φ)を跨いで変位した状態といえるか否かを判定する。あるいはこれらの式をpまたはθを求める式に変形した関数を用いるようにしても良い。
また、上記実施形態のように、2分法を用いて目標曲率φtを求める構成の場合、3次元空間を斜め方向から見たような関数を用いてもよい。例えば、以下のように曲率φの軸周りに(p-θ平面で)所定量αだけ回転させた新たな座標系を作り、2分法の演算と関数Φを含む式φt=Φ(p,θ)を用いて目標曲率φtを求めるようにすることも可能である。これは、φ軸に限らず任意の軸周りに回転させた場合も同様である。
p=x・cosα-y・sinα
θ=x・sinα+y・cosα
また、上記実施形態において、目標経路を構成する全ての目標線分について同じ制御を適用するようにしてもよいし、目標線分ごとに制御を変えるようにしてもよい。例えば、ある目標線分に対しては非線形制御を行い、ある目標線分に対しては線形制御を行うようにすることも可能である。すなわち、現在の目標線分TP1に対する位置偏差p1、方位偏差θ1および目標曲率φtが採り得る値によって定まる曲面と、次の目標線分TP2に対する位置偏差p2、方位偏差θ2および目標曲率φtが採り得る値によって定まる曲面とが異なってもよい。例えば、現在の目標線分TP1に対する次の目標線分TP2の角度が所定値より大きい場合に、次の目標線分TP2に対して非線形制御を行う一方、角度が所定値以下の場合に、次の目標線分TP2に対して線形制御を行うようにすることが可能である。目標線分切替部11が次の目標線分TP2を現在の目標線分TP1とするように切り替えた後は、切り替え前に目標線分切替部11が監視に使用していた曲面を、位置・方位制御部13による制御に使用する。
なお、上記実施形態では、同様の処理を行う仮位置偏差算出部13Bと仮位置偏差算出部15Bとを位置・方位制御部13および目標線分切替部15のそれぞれに備え、同様の処理を行う仮曲率勾配算出部13Cと仮曲率勾配算出部15Cとを位置・方位制御部13および目標線分切替部15のそれぞれに備える構成について説明したが、この構成に限定されない。例えば、仮位置偏差算出部15Bおよび仮曲率勾配算出部15Cを省略し、仮位置偏差算出部13Bおよび仮曲率勾配算出部13Cにおいて、現在の目標線分TP1に対する処理と次の目標線分TP2に対する処理とを行うようにしてもよい。同様に、図13の仮位置偏差取得部15Dを省略し、仮位置偏差取得部13Dにおいて、現在の目標線分TP1に対する処理と次の目標線分TP2に対する処理とを行うようにしてもよい。
また、上記実施形態では、(式2)~(式4)のように、作業車両WVの走行距離Lを用いて仮曲率勾配λ’や仮位置偏差p’を算出する例について説明したが、本発明はこれに限定されない。例えば、作業車両WVの走行距離Lに代えて走行時間tを用いるようにしてもよい。
また、上記実施形態では、位置・方位制御部13が仮曲率勾配λ’および仮位置偏差p’を算出する際に、(式5)に示すような曲率の制約条件を用いる例について説明したが、これに加えて、以下に示す曲率勾配の制約条件を用いるようにしてもよい。
λmin≦λ’(L)≦λmax
このようにすれば、仮位置偏差p’を算出する際に、仮方位偏差θ’の三角関数値、最大舵角に起因する曲率の飽和に加えて、車速および最大操舵速度(操舵モータの速度)に起因する曲率勾配の飽和という非線形要素も考慮した演算によって仮位置偏差p’を求めることができる。
また、上記実施形態では、走行制御部14が作業車両WVの操舵角を制御する例について説明したが、本発明はこれに限定されない。例えば、車輪ではなくクローラを備えるような作業車両WVの場合は、目標曲率φtに対して実際の曲率φが一致するように左右のクローラの回転量の差を制御するようにしてもよい。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。