特許第6954553号(P6954553)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 学校法人立命館の特許一覧 ▶ 独立行政法人農業・食品産業技術総合研究機構の特許一覧

特許6954553自律走行車両、コントローラ、コンピュータプログラム、自律走行車両の制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6954553
(24)【登録日】2021年10月4日
(45)【発行日】2021年10月27日
(54)【発明の名称】自律走行車両、コントローラ、コンピュータプログラム、自律走行車両の制御方法
(51)【国際特許分類】
   G05D 1/02 20200101AFI20211018BHJP
   B62D 6/00 20060101ALI20211018BHJP
【FI】
   G05D1/02 WZYW
   B62D6/00
【請求項の数】7
【全頁数】18
(21)【出願番号】特願2016-226682(P2016-226682)
(22)【出願日】2016年11月22日
(65)【公開番号】特開2018-84899(P2018-84899A)
(43)【公開日】2018年5月31日
【審査請求日】2019年8月30日
【新規性喪失の例外の表示】特許法第30条第2項適用 平成28年 5月28日,農業食料工学会第75回年次大会
(73)【特許権者】
【識別番号】593006630
【氏名又は名称】学校法人立命館
(73)【特許権者】
【識別番号】501203344
【氏名又は名称】国立研究開発法人農業・食品産業技術総合研究機構
(74)【代理人】
【識別番号】100111567
【弁理士】
【氏名又は名称】坂本 寛
(74)【代理人】
【識別番号】110000280
【氏名又は名称】特許業務法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】深尾 隆則
(72)【発明者】
【氏名】村上 則幸
【審査官】 藤崎 詔夫
(56)【参考文献】
【文献】 特開平07−156818(JP,A)
【文献】 特開2016−148918(JP,A)
【文献】 特開2016−155491(JP,A)
【文献】 特開2015−001906(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
B62D 6/00
(57)【特許請求の範囲】
【請求項1】
自律走行車両であって、
コントローラと、
前記自律走行車両の回頭角を計測するセンサと、
を備え、
前記コントローラは、
前記自律走行車両と仮想的な参照車両との左右方向の位置の差である横偏差と、前記自律走行車両の回頭角と前記参照車両の回頭角との差である第1回頭角偏差と、を算出する処理と、
前記第1回頭角偏差に対する非線形化を行って第2回頭角偏差を求める非線形化処理と、
前記第2回頭角偏差を変換して第3回頭角偏差を求める変換処理と、
前記横偏差及び前記第3回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、
を実行するよう構成され、
前記非線形化処理は、前記第1回頭角偏差の絶対値が所定値よりも小さい場合には、前記第2回頭角偏差の絶対値を前記第1回頭角偏差の絶対値よりも小さくする処理であり、
前記変換処理は、前記第2回頭角偏差と、前記横偏差及び前記自律走行車両の速度の関数の値と、を加算して前記第3回頭角偏差を求める処理である
自律走行車両。
【請求項2】
前記非線形化処理は、前記第1回頭角偏差の絶対値が所定値よりも小さい範囲においては、前記第2回頭角偏差の絶対値を前記第1回頭角偏差の絶対値よりも小さくするための非線形関数を用いて、前記第2回頭角偏差を求める処理であり、
前記非線形関数は、前記範囲内における前記第2回頭角偏差が前記範囲外における前記第2回頭角偏差に対してなめらかに連続するよう設定されている
請求項1記載の自律走行車両。
【請求項3】
前記非線形関数は、前記範囲外における前記第2回頭角偏差を、前記第1回頭角偏差と同じ値にするよう構成されている
請求項記載の自律走行車両。
【請求項4】
自律走行車両であって、
コントローラと、
前記自律走行車両の回頭角を計測するセンサと、
を備え、
前記コントローラは、
前記自律走行車両の回頭角と仮想的な参照車両の回頭角との差である回頭角偏差に対する非線形化処理と、
非線形化処理された前記回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、
を実行するよう構成され、
前記非線形化処理は、前記回頭角偏差の絶対値が所定値よりも小さい場合には、前記回頭角偏差の絶対値を小さくする処理であり、
前記コントローラは、非線形化処理された前記回頭角偏差の変換処理を更に実行するよう構成され、
前記変換処理は、非線形化処理された前記回頭角偏差と、前記自律走行車両の位置と前記参照車両の位置との左右方向における差である横偏差の関数の値と、を加算して、変換された回頭角偏差を求め、
前記制御処理は、変換された前記回頭角偏差に基づいて実行され、
前記関数は、h(z)=Az/(1+Bz)であり、
h(z)は、zh(z)>0,∀z≠0,かつh(0)=0を満たす関数であり、
A,Bは、正の値をとる設定パラメータであり、
z=evであり、
は、横偏差であり、
vは、前記自律走行車両の速度である
律走行車両。
【請求項5】
コントローラであって、
前記コントローラは、
自律走行車両と仮想的な参照車両との左右方向の位置の差である横偏差と、前記自律走行車両の回頭角と前記参照車両の回頭角との差である第1回頭角偏差と、を算出する処理と、
前記第1回頭角偏差に対する非線形化を行って第2回頭角偏差を求める非線形化処理と、
前記第2回頭角偏差を変換して第3回頭角偏差を求める変換処理と、
前記横偏差及び前記第3回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、
を実行するよう構成され、
前記非線形化処理は、前記第1回頭角偏差の絶対値が所定値よりも小さい場合には、前記第2回頭角偏差の絶対値を前記第1回頭角偏差の絶対値よりも小さくする処理であり、
前記変換処理は、前記第2回頭角偏差と、前記横偏差及び前記自律走行車両の速度の関数の値と、を加算して前記第3回頭角偏差を求める処理である
コントローラ。
【請求項6】
コンピュータに、
自律走行車両と仮想的な参照車両との左右方向の位置の差である横偏差と、前記自律走行車両の回頭角と前記参照車両の回頭角との差である第1回頭角偏差と、を算出する処理と、
前記第1回頭角偏差に対する非線形化を行って第2回頭角偏差を求める非線形化処理と、
前記第2回頭角偏差を変換して第3回頭角偏差を求める変換処理と、
前記横偏差及び前記第3回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、
を実行させるコンピュータプログラムであって、
前記非線形化処理は、前記第1回頭角偏差の絶対値が所定値よりも小さい場合には、前記第2回頭角偏差の絶対値を前記第1回頭角偏差の絶対値よりも小さくする処理であり、
前記変換処理は、前記第2回頭角偏差と、前記横偏差及び前記自律走行車両の速度の関数の値と、を加算して前記第3回頭角偏差を求める処理である
コンピュータプログラム。
【請求項7】
自律走行車両の制御方法であって、
前記制御方法は、
前記自律走行車両と仮想的な参照車両との左右方向の位置の差である横偏差と、前記自律走行車両の回頭角と前記参照車両の回頭角との差である第1回頭角偏差と、を算出し、
前記第1回頭角偏差に対する非線形化を行って第2回頭角偏差を求める非線形化処理をし、
前記第2回頭角偏差を変換して第3回頭角偏差を求める変換処理をし、
前記横偏差及び前記第3回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する
を含み、
前記非線形化処理は、前記第1回頭角偏差の絶対値が所定値よりも小さい場合には、前記第2回頭角偏差の絶対値を前記第1回頭角偏差の絶対値よりも小さくする処理であり、
前記変換処理は、前記第2回頭角偏差と、前記横偏差及び前記自律走行車両の速度の関数の値と、を加算して前記第3回頭角偏差を求める処理である
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律走行車両等に関する。
【背景技術】
【0002】
車両の自律走行には、車両の状態を計測することが求められる(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2015−36840号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両の自律走行には、例えば、経路追従(Path Following)制御が用いられることがある。経路追従制御は、仮想的な参照車両の軌道に、実車両を追従させる制御である。経路追従制御では、実車両と参照車両との相対誤差が用いられる。相対誤差には、例えば、横偏差と回頭角偏差とが含まれる。
【0005】
回頭角偏差を求めるため、実車両の回頭角が計測される。車両の回頭角は、例えば、車両の方位角として計測される。方位角の計測には、例えば、磁気方位を計測する磁気センサが用いられる。
【0006】
回頭角の計測においては、計測誤差が生じることがある。旋回角の計測誤差は、自律走行の精度を低下させる。例えば、高価な磁気センサでも微小ながら計測誤差が生じ、安価なセンサであればより計測誤差が大きくなる。
【0007】
回頭角の計測誤差によって生じる自律走行の精度低下を抑制することが望まれる。
【課題を解決するための手段】
【0008】
本発明の一の態様は、自律走行車両である。実施形態において、自律走行車両は、コントローラと、前記自律走行車両の回頭角を計測するセンサと、を備える。前記コントローラは、前記自律走行車両の回頭角と仮想的な参照車両の回頭角との差である回頭角偏差に対する非線形化処理と、非線形化処理された前記回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、を実行するよう構成されている。前記非線形化処理は、前記回頭角偏差の絶対値が所定値よりも小さい場合には、前記回頭角偏差の絶対値を小さくする処理である。
【0009】
本発明の他の態様は、コントローラである。本発明の他の態様は、コンピュータプログラムである。本発明の他の態様は、自律走行車両の制御方法である。
【図面の簡単な説明】
【0010】
図1】車両のブロック図である。
図2】経路追従制御の説明図である。
図3】非線形化関数を示すグラフである。
図4】コントローラによる処理のフローチャートである。
図5A】シミュレーション結果を示す図である。
図5B】シミュレーション結果を示す図である。
図6A】シミュレーション結果を示す図である。
図6B】シミュレーション結果を示す図である。
図7A】シミュレーション結果を示す図である。
図7B】シミュレーション結果を示す図である。
図8A】シミュレーション結果を示す図である。
図8B】シミュレーション結果を示す図である。
図9A】シミュレーション結果を示す図である。
図9B】シミュレーション結果を示す図である。
【発明を実施するための形態】
【0011】
[1.実施形態の概要]
【0012】
[第1項]
実施形態に係る自律走行車両は、コントローラと、前記自律走行車両の回頭角を計測するセンサと、を備える。前記コントローラは、前記自律走行車両の回頭角と仮想的な参照車両の回頭角との差である回頭角偏差に対する非線形化処理を実行する。前記コントローラは、非線形化処理された前記回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、を実行する。前記非線形化処理は、前記回頭角偏差の絶対値が所定値よりも小さい場合には、前記回頭角偏差の絶対値を小さくする処理である。回頭角偏差の絶対値が所定値よりも小さい場合には、前記回頭角偏差の絶対値を小さくすることで、回頭角の計測誤差が生じたとしても、自律走行の精度低下を抑制することができる。
【0013】
[第2項]
前記制御処理は、逆最適制御によって走行を制御する処理であるのが好ましい。逆最適制御は、不整地を車両が走行する場合に生じる外乱に対してロバスト性を有する。
【0014】
[第3項]
前記コントローラは、非線形化処理された前記回頭角偏差の変換処理を更に実行するよう構成され、前記変換処理は、非線形化処理された前記回頭角偏差と、前記自律走行車両の位置と前記参照車両の位置との左右方向における差である横偏差の関数の値と、を加算して、変換された回頭角偏差を求め、前記制御処理は、変換された前記回頭角偏差に基づいて実行されるのが好ましい。この場合、変換された回頭角偏差は、横偏差及び回頭角偏差の関数となる。
【0015】
[第4項]
前記関数は、h(z)=Az/(1+Bz)であるのが好ましい。ここで、h(z)は、zh(z)>0,∀z≠0,かつh(0)=0を満たす関数であり、A,Bは、正の値をとる設定パラメータであり、z=evであり、eは、横偏差であり、vは、前記自律走行車両の速度である。この場合、コントローラの調整が容易となる。
【0016】
[第5項]
実施形態に係るコントローラは、前記自律走行車両の回頭角と仮想的な参照車両の回頭角との差である回頭角偏差に対する非線形化処理と、非線形化処理された前記回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、を実行するよう構成されている。前記非線形化処理は、前記回頭角偏差の絶対値が所定値よりも小さい場合には、前記回頭角偏差の絶対値を小さくする処理である。
【0017】
[第6項]
実施形態に係るコンピュータプログラムは、コンピュータに、自律走行車両の回頭角と仮想的な参照車両の回頭角との差である回頭角偏差に対する非線形化処理と、非線形化処理された前記回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御する制御処理と、を実行させる。
【0018】
[第7項]
実施形態に係る自律走行車両の制御方法は、前記自律走行車両の回頭角と仮想的な参照車両の回頭角との差である回頭角偏差に対する非線形化処理をすること、非線形化処理された前記回頭角偏差に基づいて、前記参照車両に追従するように、前記自律走行車両の走行を制御することを含む。前記非線形化処理は、前記回頭角偏差の絶対値が所定値よりも小さい場合には、前記回頭角偏差の絶対値を小さくする処理である。
【0019】
[2.実施形態の詳細]
【0020】
[2.1 車両]
【0021】
図1は、車両100を示している。車両100は、コントローラ10によって自律走行する。車両100は、走行する装置であり、例えば、ロボットトラクタである。ロボットトラクタは、自律走行するトラクタである。車両100は、ロボットトラクタに限られず、他の種類の車両であってもよい。
【0022】
車両100は、コントローラ10を備える。コントローラ10は、プロセッサ11及びメモリ12を有するコンピュータを備える。メモリ12にはプロセッサ11によって実行されるコンピュータプログラムが格納されている。プロセッサ11がコンピュータプログラムを実行することで、コンピュータがコントローラ10として機能する。
【0023】
車両100は、車両の状態を計測するセンサ21,22を備える。センサ21は、車両100の回頭角θを計測する。回頭角θは、方位角として検出される。センサ21は、例えば、磁気方位を計測する磁気センサである。計測された回頭角θは、コントローラ10に与えられる。センサ22は、車両100の位置を計測する。車両100の位置は、位置座標(x,y)として検出される。センサ22は、例えば、全地球衛星測位システム(GNSS)受信機である。計測された位置(x,y)は、コントローラ10に与えられる。
【0024】
コントローラ10は、制御対象である車両100への制御入力として、車両100の舵角φを出力する。ただし、以下の説明では、コントローラ10は、制御入力として速度v及び旋回角速度ωを扱う。本実施形態の車両100は、舵角φが変化することにより旋回するため、コントローラ10は、速度v及び角速度ωを舵角φに変換して出力する。この変換については後述する。
【0025】
コントローラ10は、舵角φに応じて、車両の舵角を調整するアクチュエータ30を制御する。アクチュエータ30は、コントローラ10からの指令に応じて、操舵輪を動かし、車両100の回頭角を変化させる。コントローラ10は、車両100への制御入力として車両100の速度vを出力してもよい。
【0026】
[2.2 経路追従制御]
コントローラ10は、経路追従(Path Following)制御によって車両100を自律走行させる。図2に示すように、経路追従制御では、仮想的な参照車両200が用いられる。経路追従制御においては、実車両である車両100は、参照車両200に参照入力を与えたときに参照車両200が描く参照軌道に追従する。図2に示すように、経路追従制御では、車両100は、参照車両200の真横に位置して、参照車両200に追従する。参照軌道は、車両100が自律走行する場合の望ましい軌道である。
【0027】
車両100の状態をq=[x,y,θ]、参照車両の状態をq=[x,y,θとすると、それらの運動学モデルは、以下のように表される。
【数1】
【数2】
【0028】
ここで、x,yは、xy座標系における車両100の位置を示し、θは、車両100の回頭角である。x,yは、xy座標系における参照車両200の位置を示し、θは、参照車両200の回頭角である。v,ωは、車両100の速度と角速度であり、v,ωは、参照車両200の速度と角速度である。
【0029】
車両100と参照車両200の相対誤差は、以下のように定義される。
【数3】
【0030】
誤差eは、車両100と参照車両200との前後方向位置の差である。以下では、誤差eを、前後偏差という。誤差eは、車両100と参照車両200との左右方向位置の差である。以下では、誤差eを、横偏差という。誤差eは、車両100の回頭角θと参照車両200の回頭角θとの差である。以下では、誤差eを、回頭角偏差という。
【0031】
ある初期条件のもと、制御入力としての速度v及び旋回角速度ωを次のように選ぶと、偏差e,e,eは0へ収束する。
【数4】
【数5】
【0032】
ただし、K,K,Kは設定パラメータであり、正の定数である。
【0033】
式(3)で示される相対誤差を時間微分することにより、次の式(6)が得られる。
【数6】
【0034】
追従制御を行う場合には、車両100と参照車両200との前後方向の位置の差は考えなくてもよいため、制御入力の進行方向成分vには任意の速度を与え、e=0,eの時間微分=0とすると、式(6)から、参照車両200の速度vが以下のように決定される。
【数7】
【0035】
ここで、旋回の曲率をρとすると、参照車両200の速度v,角速度ωは、車両100の速度vに応じ、以下のようになる。
【数8】
【数9】
【0036】
よって、e,eを0に収束させる入力は、式(5)によって決定されるωのみとなり、このとき、式(6)は、以下のように書き換えられる。
【数10】
【0037】
[2.3 コントローラによる制御則]
【0038】
[2.3.1 逆最適制御]
車両100が、舗装された道路ではなく、農地のような不整地を走行する場合、地面の凹凸やすべりによる外乱を受ける。車両100がトラクタである場合、トラクタが牽引する作業機による振動や抵抗による外乱も受ける。車両100の経年劣化などによって、モデルの変化及び不確かさによるモデル化誤差も大きくなる。本実施形態では、外乱及びモデル化誤差に対応したロバストな制御則として、逆最適制御法を採用する。コントローラ10は、逆最適制御によって、車両100の走行を制御する。
【0039】
最適制御問題は、システム
【数12】
に対して、以下の条件を満足する制御入力u(x)を設計することである。
【0040】
1.u(x)は系を目標状態に漸近収束させる。
2.u(x)は以下の評価関数Jを最小化する。
【数13】
【0041】
しかし、この最適制御問題を解くには、Hamilton-Jacobi-Bellman方程式を解く必要がある。そこで、本実施形態では、より容易である以下の逆最適化のアプローチをとる。
1.まずフィードバック則を設計する。
2.その後、式(13)のような評価関数に対して最適であることが示される。
【0042】
[2.3.2 Sontagの形式による制御]
次式で示されるアフィンシステムを考える。
【数14】
【0043】
ここで、fは、n次元のベクトル、gはn×m行列である。このとき、以下の条件を満たす関数をControl Lyapunov Function(CLF)と定義する。
【0044】
(定義:Control Lyapunov Function)すべてのx≠0に対して、次の関係を満足する、なめらかで正定かつ放射状に非有界な関数V(x)は、式(14)のシステムに対するControl Lyapunov Function(CLF)と呼ばれる。
【数15】
このとき、次の定理が成立することが明らかとなっている。
【0045】
(定理:CLFからの逆最適制御)
a(x),b(x),p(x)が以下の式で定義されるとき、
【数16】
【数17】
【数18】
Sontagの形式による次の入力
【数19】
は、システムを漸近安定化し、かつ次の評価関数を最小化する。
【数20】
【0046】
この最適性によって、求められたコントローラは、sectormargin(1/2,∞)とよばれる安定上の利点を持つ。
【0047】
[2.3.3 逆最適経路追従制御]
本実施形態のコントローラ10は、経路追従制御を逆最適制御によって行う。以下では、経路追従制御のための逆最適コントローラ10を説明する。
【0048】
まず、以下の関数を定義する。ただし、A,Bは設定パラメータであり、正の値である。
【数21】
ここで、h(z)は、zh(z)>0,∀z≠0,かつh(0)=0の条件を満たす関数である。h(z)は、かかる条件を満たす関数であればよく、式(21)の形式に限定されない。
【数22】
【0049】
以下の式(23)によって、コントローラ10は、回頭角偏差eを変換する変換処理を行う。実施形態において、変換処理は、回頭角偏差eに、式(21)に示す関数hの値を加算して、変換された回頭角偏差e~を求める処理である。ここでは、式(21)において、z=evであり、hは、横偏差eの関数となっている。
【数23】
【0050】
CLFからの逆最適制御では、式(15)を満たす必要があるが、回頭角偏差eは、単独では、式(15)の関係を満たさない。しかし、zh(z)>0となる関数h(z)を、回頭角偏差eに加算すると、式(15)を満たすことができる。式(23)に示すように、変換された回頭角偏差e~は、横偏差eと回頭角偏差eの関数として表される。
【0051】
式(21)によれば、evの絶対値が大きい場合には、evが、式(23)に示す回頭角偏差e~に反映される度合は小さくなる。一方、evの絶対値が小さい場合には、evは、その大きさに応じた値がe~に反映される。
【0052】
式(10)及び式(23)より、次式が得られる。
【数24】
【0053】
式(24)に基づくと、以下で示されるVは、Control Lyapunov Function(CLF)となる。
【数25】
ここで、Ki2,Ki3は正定数である。Ki2はeに対するゲインであり、Ki3はe~に対するゲインである。
【0054】
仮に、式(25)において、e~がeである場合には、e,eに対するゲインKi2,Ki3を別々に設定することで、e,eに対するゲインを個別に調整でき問題はない。しかし、VがControl Lyapunov Function(CLF)であるためには、式(25)において、e~が採用されている必要がある。e~は、eとeの関数であるため、ゲインKi2,Ki3を別々に設定しただけでは、e,eに対するゲインを個別に調整するのは必ずしも容易ではない。
【0055】
例えば、経路追従制御では、回頭角偏差eが生じたために横偏差eが大きくなった場合に、その回頭角偏差eを小さくしようとすると、横偏差eを小さくすることができない。一方、横偏差eを小さくしようとすると、却って回頭角偏差eが大きくなる。経路追従制御では、横偏差eと回頭角偏差eとにはトレードオフがある。したがって、eとeの関数であるe~を、単一のゲインKi3で適切に調整するのは必ずしも容易ではない。
【0056】
これに対して、本実施形態では、式(21)の関数hが有する設定パラメータA,Bを調整することで、変換された回頭角偏差e~に、横偏差eをどの程度反映させるかを調整でき、コントローラ10を適切に調整するのが容易となる。ここで、式(21)では、設定パラメータAは、関数hの値の大きさを決定し、設定パラメータBは、e~にevの大きさに応じた値が反映されるevの範囲を決定する。
【0057】
さて、式(25)で示されるVが、Control Lyapunov Function(CLF)であるとき、
【数26】
【数27】
である。
【0058】
式(26)(27)を、式(19)の制御入力を出力するコントローラ10に適用することで、横偏差e及び回頭角偏差eを0に収束させる角速度ωが決定される。ただし、速度vが有界であるには、e≠π/2かつeωが有界でなければならない。
【0059】
[2.3.4 入力の変換]
式(19)の制御入力は、車両100の速度vと旋回角速度ωであるが、実際の車両100は、操舵輪である前輪の舵角φが変化することにより旋回する。舵角φと、速度v及び旋回確度ωとの関係は、以下のとおりである。ここで、Lは、車両100の前後輪の距離である。
【数28】
【0060】
コントローラ10は、決定された角速度ωを式(28)で舵角φに変換し、舵角φに応じてアクチュエータ30を制御する。
【0061】
[2.3.5 回頭角偏差eの非線形化]
回頭角偏差eは、計測される方位角(回頭角)θの計測誤差の影響を受けて、実際の回頭角偏差よりも大きくなることがある。実際よりも大きい回頭角偏差eに基づいて制御すると、横偏差eを収束させ難くなる。この場合、制御入力を求める場合の回頭角偏差eに対するゲインを小さくすれば、その分、方位角θの計測誤差の影響も小さくできる。しかし、単に、回頭角偏差eに対するゲインを小さくすると、回頭角偏差eが本当に大きい場合に、横偏差eを収束させるのがやはり困難になる。
【0062】
本実施形態では、計測誤差の影響を低減するため、コントローラ10は、回頭角偏差eの非線形化処理を行う。回頭角偏差eの非線形化処理のための関数i(e)は、例えば、以下のように定義される。以下では、関数i(e)の値を、非線形化回頭角偏差という。
【数29】
ここで、aは、関数i(e)の原点での傾き、εは非線形化を行う範囲を表し、例えば、以下の条件を満たすように決定される。
【数30】
【数31】
【0063】
関数i(e)による非線形化処理は、回頭角偏差eの絶対値が所定値εよりも小さい場合には、回頭角偏差の絶対値を小さくする処理である。図3における実線は、関数i(e)の例を示す。ここでは,a=0.1,ε=0.020に決定した。なお、図3における点線は、傾き1の直線である。
【0064】
非線形化処理においては、回頭角偏差eの絶対値が所定値εよりも小さい範囲、すなわち−ε≦e≦εの範囲においては、関数iは非線形関数となっており、図3に示すように、非線形化回頭角偏差i(e)の絶対値が、回頭角偏差eの絶対値よりも小さくなる非線形化が行われる。回頭角偏差eの絶対値が小さい範囲では、計測誤差の影響が相対的に大きくなるため、非線形化処理により、回頭角偏差eの絶対値を小さくして回頭角偏差eを重視しないようにして、計測誤差の影響を小さくする。これにより、横偏差eを収束させるのが容易となる。
【0065】
一方、回頭角偏差eの絶対値が所定値εよりも大きい範囲、すなわち、−ε>e,e<εの範囲では、関数iは線形関数であり、i(e)=eとなる。つまり、回頭角偏差eの絶対値が所定値εよりも大きい場合には、非線形化回頭角偏差i(e)は、非線形化処理前の回頭角偏差eの値を維持する。回頭角偏差eの絶対値が大きい範囲では、計測誤差の影響が相対的に小さくなるため、回頭角偏差eの絶対値を小さくすることなく制御入力の決定に用いることで、回頭角偏差eが本当に大きい場合に、横偏差eを収束させるのが容易となる。
【0066】
傾きaは、計測誤差の大きさに応じて適宜設定される。計測誤差が小さい場合には、傾きaを上記の範囲で大きくすることで、−ε≦e≦εの範囲の関数i(e)が、回頭角偏差eの絶対値を小さくする度合が小さくなる。逆に、計測誤差が大きい場合には、傾きaを上記の範囲で小さくすることで、−ε≦e≦εの範囲の関数i(e)が、回頭角偏差eの絶対値を小さくする度合が大きくなる。
【0067】
コントローラ10は、傾きaとして予め設定された値を用いても良いし、計測誤差の大きさに応じて傾きaを動的に変更してもよい。計測誤差の大きさは、例えば、コントローラ10が、カルマンフィルタを用いて推定できる。
【0068】
非線形化範囲εも、計測誤差の大きさに応じて適宜設定される。計測誤差が小さい場合には、非線形化範囲εを上記の範囲で小さくして、非線形化処理の範囲を絞ることができる。逆に、計測誤差の大きさが大きい場合には、非線形化範囲εを上記の範囲で大きくして、非線形化処理の範囲を広げることができる。
【0069】
コントローラ10は、非線形化範囲εとして予め設定された値を用いても良いし、計測誤差の大きさに応じて非線形化範囲εを動的に変更してもよい。前述のように、計測誤差の大きさは、例えば、コントローラ10が、カルマンフィルタを用いて推定できる。
【0070】
実施形態において、−ε≦e≦εの範囲におけるi(e)は、−ε>e,e<εの範囲におけるi(e)=eに対してなめらかに連続する関数として設定されている。−ε≦e≦εの範囲における関数i(e)と、−ε>e,e<εの範囲における関数i(e)と、がなめらかに連続するものであることで、制御が安定化する。
【0071】
式(29)を用いると、式(23)は以下のように書き換えられる。
【数32】
【0072】
これにより、式(24)と同様に次式が得られる。
【数33】
【0073】
式(33)に基づくと、先の式(25)で示されるVは、Control Lyapunov Function(CLF)となる。このとき、
【数34】
【数35】
である。
【0074】
式(34)(35)を、式(19)の制御入力を出力するコントローラ10に適用することで、横偏差e及び回頭角偏差eを0に収束させる角速度ωが決定される。ただし、速度vが有界であるには、e≠π/2かつeωが有界でなければならない。
【0075】
[2.4 コントローラによる処理手順]
図4は、経路追従制御を逆最適制御によって行うコントローラ10による処理手順を示している。ステップS1において、コントローラ10は、横偏差eと回頭角偏差eを算出する。横偏差eは、センサ22によって計測された位置(x,y)と、参照車両200の位置(x,y)と、参照車両200の回頭角θと、から算出される(式(3)参照)。回頭角偏差eは、センサ21によって計測された回頭角θと、参照車両200の回頭角θrと、から、回頭角偏差eも算出する(式(3)参照)。
【0076】
ステップS2において、コントローラ10は、回頭角偏差eに対して、非線形化処理を行って、非線形化回頭角偏差i(e)を求める。非線形化処理のための関数iは、コントローラ10のメモリ12に、非線形化処理用のデータ121として記憶されている。プロセッサ11は、非線形化処理用のデータ121を読み出して非線形化処理を行う。回頭角偏差eに対して非線形化処理が行われるため、前述のように、センサ21によって計測された回頭角θに計測誤差が含まれていても、その影響が低減される。
【0077】
ステップS3において、コントローラ10は、非線形化回頭角偏差i(e)に対して、式(32)に従った変換処理を行う。変換処理では、非線形化回頭角偏差i(e)と、横偏差eの関数h(ev)の値と、を加算して、変換された非線形化回頭角偏差e~が求められる。変換処理のための設定パラメータA,B(式(21)参照)は、コントローラ10のメモリ12にパラメータ値122及びパラメータ値123として設定されている。プロセッサ11は、パラメータ値122,123を設定パラメータA,Bとして読み出して、変換処理を行う。設定パラメータA,Bがあるため、変換された非線形化回頭角偏差e~が適切になる。設定パラメータA,Bは、ユーザ入力により調整されてもよいし、コントローラ10自らが、車両100の走行環境等に応じて調整してもよい。
【0078】
ステップS4において、コントローラ10は、横偏差e及び変換された非線形化回頭角偏差e~に基づき、逆最適制御によりe及びe~を収束させる角速度ωを決定する。コントローラ10は、角速度ωから、式(28)に基づいて、舵角φを求め、アクチュエータ30を制御する。
【0079】
[2.5 シミュレーション結果]
【0080】
[2.5.1 非線形化処理]
図5A,5B,6A,6Bは、回頭角θの計測誤差がある場合において、回頭角偏差eに対する非線形化処理の有無による車両100の状態の違いをシミュレーションした結果を示す。図5Aは、非線形化処理を行った場合の横偏差e及び回頭角偏差eを示し、図5Bは、非線形化処理を行わない場合の横偏差e及び回頭角偏差eを示す。図6Aは、非線形化処理を行った場合の舵角φを示し、図6Bは、非線形化処理を行わない場合の舵角φを示す。
【0081】
図5Bに示すように、非線形化処理を行わない場合の横偏差eは、0.1m程度であったのに対して、図5Aに示すように、非線形化処理を行った場合の横偏差eは、0.04〜0.05m程度に低減される。シミュレーションにより、回頭角θの計測誤差があっても、非線形化処理を行うことで、横偏差eを抑制できることが確認された。
【0082】
[2.5.2 設定パラメータA,B]
図7A,7B、8A,8B,9A,9Bは、式(21)のパラメータA,Bを調整した場合の横偏差e,回頭角偏差e,舵角φを示す。図7A,7Bは、A=1,B=1に設定した場合であり、この場合、横偏差eは、0.04m程度である。図8A,8Bは、A=1,B=30に設定した場合であり、この場合、横偏差eは、0.025m程度である。図9A,9Bは、A=1,B=15に設定した場合であり、この場合、横偏差eは、0.023m程度である。このように、パラメータA、B、特に、パラメータBを適切に調整することにより、横偏差eを容易に小さくすることができる。
【0083】
なお、本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【0084】
10 コントローラ
11 プロセッサ
12 メモリ
21 センサ
22 センサ
30 アクチュエータ
100 車両
200 参照車両
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図7A
図7B
図8A
図8B
図9A
図9B