【解決手段】制御装置1は、車両の方向の指令値である舵角に応じて駆動輪を駆動する駆動部20と、車両のヨーレートを測定する第一測定部30と、車両の位置および姿勢を測定する第二測定部40と、第二測定部40から得られる車両の位置および姿勢を用いて、ロバスト制御手法により車両のヨーレートを算出する回転角速度算出部13と、第一測定部30から得られるヨーレート測定値と回転角速度算出部13から得られるヨーレート算出値とを用いて、PID制御手法により舵角を算出し、駆動部20に算出した舵角を出力する指令値算出部12とを備える。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の自律走行を行う自律走行車両では、特に、地面の状態が不安定な場合には、走行経路の追従精度が十分ではないという問題がある。具体的には、農作業車が走行する田畑等の農地では、比較的土壌が柔らかく、農作業車の車輪が通過することで、土壌の状態が変わってしまう。つまり、前輪の通過時と後輪の通過時とでは、土壌の状態が異なってしまう。土壌の状態には、傾斜あるいは凹凸の大きさ等の土壌の表面の形状、土壌の固さ等が含まれる。さらに、土壌に石等の固い物質が含まれている場合、当該石の上を車輪が通過すると、車輪が横滑りしてしまうという問題がある。
【0006】
一般的に、農作業車を用いた農作業では、農地全体に対して農作業を行うために、車両を農地内で複数回往復させる。この場合、農作業車の進行方向に垂直な方向、いわゆる車両の横方向において、農作業車の実際の走行経路と追従すべき参照経路との間でずれが生じると、農作業車を往復させる回数を増大させてしまう可能性がある。往復回数が増えると、農作業車を走行させる距離が増大し、作業効率が低下してしまうという問題がある。
【0007】
なお、積雪のある地面では、車輪が接することでいわゆる土壌の状態が変化することから、除雪車等においても同様の問題が生じると考えられる。
【0008】
そこで、本発明は、走行経路の追従精度を向上させることができる車両の制御装置および車両の制御方法を提供する。
【課題を解決するための手段】
【0009】
例えば、本発明の一態様に係る車両の制御装置は、車両の方向の指令値に応じて駆動輪を駆動する駆動部と、前記車両の第一回転角速度を測定する第一測定部と、前記車両の位置および姿勢を測定する第二測定部と、前記第二測定部から得られる前記車両の位置および姿勢を用いて、ロバスト制御手法により前記車両の第二回転角速度を算出する回転角速度算出部と、前記第一測定部から得られる測定値と前記回転角速度算出部から得られる算出値とを用いて、PID(Proportional−Integral−Derivative)制御手法により前記指令値を算出し、算出した前記指令値を前記駆動部に出力する指令値算出部とを備える。
【0010】
上記構成の制御装置では、PID(Proportional−Integral−Derivative)制御手法により指令値を算出するので、特に、地面の状態が不安定な場合であっても、走行経路の追従精度を向上させることができる。これにより、特に、農作業車あるいは除雪車のように、状態が不安定な地面を走行しながら作業を行う車両において、作業効率を向上させることが可能になる。
【0011】
例えば、前記指令値算出部は、前記指令値をδ、前輪と後輪との距離をL、前記車両の速度をν、前記測定値をω、前記算出値をω
Cとし、係数をK
P、K
DおよびK
Iとした場合、以下の式1を用いて前記指令値を求めてもよい。
【数1】
【0012】
これにより、比較的簡単な演算で、指令値を算出することが可能になり、車両に搭載される演算装置の演算負荷を低減することができる。
【0013】
例えば、前記指令値は、前記駆動輪の舵角を示す値であり、前記駆動部は、前記指令値に応じて前記駆動輪の舵角を変化させてもよい。あるいは、前記車両は、前記駆動輪として1対の無限軌道を有し、前記指令値は、前記1対の無限軌道の各々の回転数を示す値であり、前記駆動部は、前記指令値に応じて前記1対の無限軌道の各々における回転数を変化させてもよい。
【0014】
このように構成すれば、一般的な車輪を有するトラクタ、および、無限軌道を有するトラクタ等、幅広い種類のトラクタに対応できる。
【0015】
また、例えば、前記回転角速度算出部は、前記ロバスト制御手法として、スライディングモード制御手法を用いてもよい。
【0016】
なお、これらの包括的または具体的な態様は、装置だけでなく、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0017】
本発明に係る車両の制御装置および車両の制御方法は、走行経路の追従精度を向上させることができる。
【発明を実施するための形態】
【0019】
<課題の詳細および本発明の基礎となった知見>
比較例における車両の基本的な自律走行制御方法について、
図1および
図2を用いて説明する。当該比較例では、車両100が、前輪の舵角を変化させることができる(後輪の舵角は固定されている)4輪のトラクタである場合を想定している。
【0020】
図1は、自律走行制御で用いられる各種のパラメータを説明する図である。
図1は、追従経路上の仮想的な車両である参照車両200と車両100との関係を示している。
図1では、車両100の進行方向とX軸との間の角度をθとしている。車両100の速度をν、ヨーレート(後輪軸と前輪舵角方向軸との交点を中心とする回転角速度)をω、車両100の現在のX軸座標をx、Y軸座標をyとすると、車両100の状態は、以下の式2で表される。
【数2】
【0021】
また、
図1では、参照車両200の進行方向とX軸との間の角度をθ
rとしている。参照車両200の速度をν
r、ヨーレートをω
r、参照車両200のX軸座標をx
r、Y軸座標をy
rとすると、参照車両200の状態は、以下の式3で表される。
【数3】
【0022】
車両100の参照車両200に対する進行方向の偏差を偏差e
1、進行方向に直交する横方向の偏差を偏差e
2、角度の偏差を偏差e
3とすると、相対偏差は、以下の式4で表される。
【数4】
【0023】
式4を時間微分すると以下の式5が得られる。
【数5】
【0024】
ここで、e
1=0、d/dt(e
1)=0となるようにν
rを決定すると、以下の式6が得られる。
【数6】
【0025】
式6より、横方向の偏差e2および角度の偏差e
3を0に収束させるための式として、以下の式7が得られる。
【数7】
【0026】
ここで、スライディングモード制御手法を適用することを考える。スライディングモード制御手法では、切り替え面で分割される領域の一方から他方に移動するときに制御入力の方向を切り替え面に向かう方向に切り替える。これにより、車両100の状態を切り替え面に拘束させ、車両100を平衡点に向かわせることができる。まず、以下の式8に示す状態変換を行う。
【数8】
【0027】
ξとe
2を0に収束させる仮想入力−K
Se
2との差sが0になる面を切り替え面とする。sは、定数K
sを用いて、以下の式9から得られる。
【数9】
【0028】
sを微分すると、以下の式10が得られる。
【数10】
【0029】
ここで、車両100の望ましいヨーレートω
C(算出値)を以下の式11とする。
【数11】
【0030】
式11において、ηは定数、sgn(s)は符号関数である。
【0032】
図2は、自律走行制御で用いられる各種のパラメータを説明する図である。
図2では、車両100の長手軸に平行な軸をAL軸、車両100の前輪112の回転軸を軸AF1、軸AF1に垂直な軸を軸AF2、前輪112の後方に設けられている後輪113の回転軸を軸ABとしている。さらに、
図2では、軸AF1と軸ABとが交わる点を交点Ce、前輪112と後輪113との間の距離をL、後輪113の中心と交点Ceとの間の距離をRとしている。なお、
図2では、説明のため、前輪112と後輪113との間の関係を示しているが、前輪111と後輪114との間の関係でも構わない。
【0033】
図2より、以下の式12が得られる。
【数12】
【0034】
車両100の制御装置は、舵角δが入力されると、車両100のヨーレートωを測定する。さらに、制御装置は、車両100の位置および姿勢を測定し、当該位置および姿勢から、望ましいヨーレートω
Cを算出する。制御装置は、当該ヨーレートω
Cから式11を用いて次に与える舵角δを算出する。車両100はこれらの手順を繰り返し実行する。舵角δの算出は、例えば、0.1ms毎に行われる。
【0035】
しかしながら、上述した制御方法により算出したω
Cでは、地面が不安定な場合、誤差が非常に大きくなるという問題がある。具体的には、直進時には、横方向の誤差は10cm程度、旋回時には、横方向の誤差が20cm程度となる。このため、さらなる改善が求められている。
【0036】
ここで、本発明者らは、一般道路では入力された舵角δと車両100の進行方向との間のずれは非常に小さいが、地面が不安定な場合には、車両100に滑りが生じ、入力された舵角δと車両100の進行方向との間にずれが生じることに着目した。そして、本発明者らは、PID制御手法を用いて舵角δを決定することにより、横方向の誤差を低減できることを見いだした。
【0037】
なお、PID制御手法は、誤差を低減するための手法であり、一般的には、誤差を示すパラメータ、例えば、上述した式3等に現れる横方向の偏差e
2を低減するために適用される。舵角δは誤差を示すパラメータではないため、通常は、PID制御手法の適用対象とはならない。
【0038】
以下、実施の形態等について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態等は、いずれも包括的または具体的な例を示すものである。以下の実施の形態等で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態等における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0039】
(実施の形態)
実施の形態の車両100について、
図1〜
図5を用いて説明する。
【0040】
図3は、実施の形態における車両の外観の一例を示す斜視図である。本実施の形態では、比較例の場合と同様に、車両100が前輪111および112の舵角を変化させることができる(後輪113および114の舵角は固定されている)4輪のトラクタである場合を想定している。
【0041】
車両100には、少なくとも車両100の自律走行に関する処理を行う制御装置1が搭載されている。
【0042】
[1.車両の制御装置の構成]
車両100の制御装置1は、本実施の形態では、CPU(Central Processing Unit)、メモリ、タイマおよび入出力インターフェースを備えるマイクロコントローラにより実現され、エンジンコントロールユニット(図示せず)等を含んでいる。メモリには、車両の制御方法に含まれる各ステップを実行するためのプログラムが記憶されている。CPUが当該プログラムを実行することにより、車両の制御方法を実行して、制御装置1として機能することができる。
【0043】
図4は、実施の形態における車両の制御装置の構成の一例を示すブロック図である。車両100の制御装置1は、演算処理部10と、駆動部20と、第一測定部30と、第二測定部40とを備えている。
【0044】
演算処理部10は、自律走行に必要な各種パラメータの算出を行う。演算処理部10は、通信部11と、指令値算出部12と、回転角速度算出部13とを備えている。
【0045】
通信部11は、駆動部20に対して車両の方向の指令値を出力する。車両の方向の指令値は、例えば、前輪の舵角δである。
【0046】
指令値算出部12は、第一測定部30により測定される車両100のヨーレートω(第一回転角速度)と、回転角速度算出部13により算出されるヨーレートω
Cとを用いて、PID制御手法により指令値を算出する。指令値算出部12は、さらに、通信部11を介して算出した指令値を駆動部20に対して出力する。
【0047】
回転角速度算出部13は、第二測定部40から得られる車両100の位置および姿勢を用いて、ロバスト制御手法により車両100のヨーレートω
C(第二回転角速度)を算出する。本実施の形態では、回転角速度算出部13は、ロバスト制御手法のうちのスライディングモード制御手法を用いてヨーレートω
Cを算出する。
【0048】
駆動部20は、本実施の形態では、2つの前輪111および112の角度を指令値に応じて変化させるステアリング機構である。
【0049】
第一測定部30は、本実施の形態では、車両100のヨーレートを測定する角速度センサーである。
【0050】
第二測定部40は、車両の位置および姿勢を測定する。第二測定部40は、本実施の形態では、RTK−GNSS(Real Time Kinematic − Global Navigation Satellite System)とIMU(Inertial Measurement Unit)とを備えている。
【0051】
[2.車両の制御方法の処理手順]
図5は、実施の形態における車両の制御方法の処理手順を示すフローチャートである。
【0052】
まず、演算処理部10は、自律走行の開始時、通信部11を介して車両の方向の指令値の初期値を駆動部20に対して出力する(S10)。指令値の初期値は、舵角δの初期値δiであり、本実施の形態では、δi=0である。
【0053】
演算処理部10は、ステップS10の実行後および後述するステップS15の実行後に、第一測定部30から車両100のヨーレートωを取得する(S11)。ヨーレートωは、
図1および
図2に示す比較例のヨーレートωと同じである。
【0054】
演算処理部10は、ステップS10の実行後および後述するステップS15の実行後に、第二測定部40から車両100の位置および姿勢を取得する(S12)。車両100の位置は、座標(x、y)であり、姿勢は角度θである。
【0055】
演算処理部10は、ステップS12において取得した車両100の位置および姿勢を用いて、スライディングモード制御手法(ロバスト制御手法の一例)により車両100のヨーレートω
Cを算出する(S13)。ヨーレートω
Cの算出方法は、比較例と同じである。具体的には、上述した式11を用いてヨーレートω
Cを算出する。舵角δが与えられることにより、ヨーレートωの偏差ω
e(ω=ω
C+ω
e)を算出することができる。
【0056】
演算処理部10は、ステップS11において取得したヨーレートω(測定値)と、ステップS13において算出したヨーレートω
C(算出値)とを用いて、PID制御手法により指令値である舵角δを算出する(S14)。
【0057】
PID制御手法では、出力値の偏差、積分および微分の3つの要素を組み合わせて、出力値を算出する。演算処理部10は、ヨーレートの測定値ωとヨーレートの算出値ω
Cとの差の偏差、当該差の積分値、および、当該差の微分値の3つの要素を組み合わせて、出力値である舵角δを算出する。具体的には、舵角δは、以下の式13を用いて表される。
【数13】
【0058】
式13において、K
Pは偏差の係数、K
Dは微分係数、K
Iは積分係数であり、トラクタの特性および土壌の特性等により決まる定数である。なお、係数K
P、K
D、K
Iは、過去の走行履歴等に応じて適宜変更するように構成しても構わない。また、νは車両100の速度、Lは
図2に示す前輪112と後輪113との距離である。
【0059】
演算処理部10は、通信部11を介して算出した舵角δを駆動部20に対して出力する(S15)。
【0060】
演算処理部10は、例えば、0.1ms毎に、ステップS11〜S15を繰り返し実行する。
【0061】
[3.検証]
本発明者らは、比較例と本実施の形態による車両の制御方法を用いた場合とで比較実験を行った。
図6A〜
図8Bは、当該比較実験における結果を示すグラフである。
【0062】
図6Aは、比較例に係るトラクタの参照経路と実走行経路とを示すグラフである。
図6Bは、実施の形態に係るトラクタの参照経路と実走行経路とを示すグラフである。なお、
図6Aおよび
図6Bでは、メートル単位で示しているため、一部を拡大表示している。
図6Aおよび
図6Bから分かるように、比較例では、旋回時の誤差が約20cm程度であるのに対し、本実施の形態では、旋回時の誤差が10cm以内に抑えられている。
【0063】
図7A比較例に係る横方向の偏差e
2を示すグラフである。
図7Bは、実施の形態に係る横方向の偏差e
2を示すグラフである。また、
図8Aは、比較例に係る角度の偏差e
3を示すグラフである。
図8Bは、実施の形態に係る角度の偏差e
3を示すグラフである。
【0064】
図7A〜
図8Bから分かるように、横方向の偏差e
2および角度の偏差e
3の何れも、振れ幅が小さくなっており、改善されていることが分かる。
【0065】
[4.効果等]
本実施の形態の車両100の制御装置1および制御方法では、PID制御手法により指令値を算出するので、特に、地面の状態が不安定な場合に、走行経路の追従精度を向上させることができる。これにより、特に、農作業車あるいは除雪車のように、状態が不安定な地面を走行しながら作業を行う車両の作業効率を向上させることが可能になる。
【0066】
より詳細には、比較例では、車両の望ましいヨーレートω
Cについては、現在の車両の状態(位置および姿勢)と参照経路とのずれを考慮して決定するが、指令値の一例である舵角δについては、RとLの関係にのみ基づいて決定される。
【0067】
これに対し、本実施の形態では、車両の望ましいヨーレートω
Cについては、比較例と同様に、現在の車両の状態と参照経路とのずれを考慮して決定する。さらに、本実施の形態では、舵角δについて、式13に示すように、車両100の実際のヨーレートω(測定値)と計算上のヨーレートω
Cとの間に生じる差を考慮して決定することができる。
【0068】
なお、従来は、ヨーレートω
Cの算出において既に車両100の現在の位置および姿勢が用いられているため、地面の変化により生じる誤差を補正することができると考えられていた。また、舵角δについては、望ましいヨーレートω
Cから一意的に決まるものであると考えられていた。しかしながら、農地等のような非常に不安定な土壌を走行する場合、車両100に与える影響が非常に大きく、車両100の現在の位置および姿勢のみのフィードバックでは、誤差が残ってしまうという問題がある。
【0069】
本実施の形態の制御装置1では、指令値の一例である舵角δを、ヨーレートの測定値と算出値との差を用いてPID制御手法により求めるため、地面が不安定な場合であっても、上述した車両100の実際の走行経路の参照経路からのずれを低減することができる。
【0070】
なお、PID制御手法は、差を低減するための手法であり、一般的には、誤差を示すパラメータ、例えば、上述した式3等に現れる横方向の偏差e
2を低減するために適用される。舵角δは誤差を示すパラメータではないため(舵角δの誤差の偏差、積分および微分という概念はないため)、そのままPID制御手法を適用することは困難である。そこで、本発明者らは、舵角δにPID制御手法を適用するに当たり、舵角δの誤差の偏差、積分および微分ではなく、ヨーレートの誤差の偏差、積分および微分を適用した。
【0071】
これにより、本実施の形態の車両100の制御装置1および制御方法では、式13に示すような比較的簡単な演算方法により指令値を算出することができる。そのため、演算処理部10の演算負荷を軽減できる。車両100の自律走行では、演算処理の正確さおよび演算処理の速さが求められるため、演算負荷を低減することは重要である。
【0072】
なお、舵角δの算出方法は、式13に限られるものではない。例えば、式13に任意のパラメータを追加しても構わない。
【0073】
(他の実施の形態)
以上、本発明に係る車両の制御装置および制御方法について、実施の形態等に基づいて説明したが、本発明は実施の形態に限定されるものではない。実施の形態等に対して当業者が思いつく変形を施して得られる形態、および、実施の形態等における複数の構成要素を任意に組み合わせて実現される別の形態も本発明に含まれる。
【0074】
例えば、上記実施の形態では、スライディングモード制御手法を用いて車両100のヨーレートω
Cを算出したが、これに限られるものではない。車両100のヨーレートω
Cは、ロバスト制御手法を用いて算出すれば良い。ロバスト制御手法には、スライディングモード制御手法の他、H無限大制御手法、LMI(Linear Matrix Inequality、線形行列不等式)、および、逆最適制御手法を利用する手法等が含まれる。
【0075】
また、上記実施の形態では、車両100が車輪を備える場合について説明したが、無限軌道を備えていても構わない。この場合は、指令値は、無限軌道の回転数を示す値となる。無限軌道を備える車両では、左右2つの無限軌道の回転数を異ならせることで、車両の方向を変化させることができる。駆動部20は、指令値に応じた回転数で無限軌道を駆動する。なお、車輪および無限軌道の両方を備える車両の場合、車輪により車両の方向を決定する場合には、舵角δをPID制御手法により算出し、無限軌道により車両の方向を決定する場合には、無限軌道の回転数を示す値をPID制御手法により算出する。
【0076】
また、本発明は、車両の制御方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD−ROM等の非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
【0077】
例えば、本発明が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリおよび入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、本発明の各機能要素が実現される。つまり、CPUが処理対象のデータをメモリまたは入出力回路等から取得してデータを演算したり、演算結果をメモリまたは入出力回路等に出力したりすることによって、各機能要素が実現される。
【0078】
また、車両の制御装置に含まれる複数の構成要素は、集積回路であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSIまたはウルトラLSIと呼称されることもある。
【0079】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0080】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、電池検査システムまたは導電率分布導出装置に含まれる構成要素の集積回路化を行ってもよい。