【実施例】
【0022】
経路記述データの修正装置の実施例を説明する。最初に用語の意味を明らかにしておく。
経路記述データ:経由点(移動体の基準点が通過する点)のx座標と、経由点のy座標と、経由点における移動体方向(x軸の正方向から移動体に固定されている基準線が指向している方向までの反時計回転方向の角θ)が、経由点の順序に従って並んでいるデータをいう。
経路記述データは、式(1)で示され、Piは式(2)で示される。xi,yi,θiを、本明細書では、経路記述パラメータという。i=1は出発点であり、i=Nは目標点である。x1,y1,θ1は与えられている。目標位置と目標姿勢を記述するxN,yN,θNは、経路記述データの初期値を計算する段階では与えられた値であるが、修正した方がよい場合がある。実施例の修正装置では、目標位置と目標姿勢を記述するxN,yN,θNを変数として扱い、修正処理の対象とする。
【数1】
【数2】
【0023】
初期経路:修正装置に入力される、修正処理前の経路記述データで記述される経路をいう。初期経路記述データは、RRTのような確率的手法で求めることもできるし、A
*探索のようなグリッド探索法で求めることができる。実施例の修正装置は、初期経路記述データの生成プロセスに限定されないで適用することができる。
初期経路は、出発点の出発前に、地図情報に基づいて計算したものであってもよい。あるいは、移動体が移動しながら計算したものであってもよい。地図情報に基づいて初期経路を計算した場合、地図情報が不正確であり、地図情報に基づいて設定した目標値が不適切な場合がある。あるいは、地図情報と移動体の現在位置の間にずれがあり、そのずれの分だけ、移動体から見た目標値が地図上の目標値からずれていることがある。移動体が障害物の存在範囲を検出するセンサを備えている場合、移動開始直後には目標位置までの距離が遠く、目標位置の近傍に位置している障害物の存在範囲が不正確に検出されていることがある。あるいは、センサの死角になっていたために目標位置の近傍に位置している障害物が検出されていなかったこともある。あるいは、障害物の存在範囲を検出したときのセンサの位置と姿勢の計算値に誤差が含まれており、それによって障害物の存在範囲が不正確に検出されていることがある。
初期経路に含まれている目標値は、必ずしも適切なものでなく、障害物の実際の存在範囲が判明した際に、修正したほうがよい場合が生じる。
初期経路には各種の不都合が含まれている可能性があり、例えば移動体がその初期経路に沿って移動すると移動体が障害物に接触することがある。あるいは、経路方向が急激に変化することがある。あるいは、移動体の経路長が不必要に長い場合もある。RRTのような確率的手法やA
*探索のようなグリッド探索法で求めた経路が、移動体と障害物の干渉をもたらすにはいくつかの理由がある。例えば、初期経路の探索過程を簡単化するために、移動体の形状を小さめに設定することがある。あるいは移動体の形状を単純化することがある。移動体の形状を簡単化したために、実際には移動体と障害物が干渉することがある。またグリッド探索手法では移動体方向を無視することがある。移動体が、計算された経路に沿って移動体の方向を変えながら移動すると、移動体と障害物が干渉することがある。種々の理由によって、初期経路には各種の不都合が含まれている可能性がある。経路の修正装置には、障害物と干渉する経路を処理して障害物と干渉しない経路に修正する能力が必要とされる。
【0024】
移動体:有限の大きさを備えている。
障害物:有限の大きさを備えている。
凸包:物体を包含する最小の凸多角形をいう。
最短距離計算法:離れて存在する2個の凸包のそれぞれにおける最近接点を求め、その距離(凸包間の最短距離)を計算する手法。GJKアルゴリズムなどの既知の数学手法を利用することができる。
ポテンシャル増大開始距離:離反距離がそれ以下となると、離反距離評価値を計算するポテンシャル関数がゼロでなくなる距離。
許容距離:移動体と障害物の間に確保する最小離反距離。ポテンシャル増大開始距離に等しくしてもよいし、異なっていてもよい。
許容偏差:先行経由点から後続経由点を指す方向と、x軸の正方向がなす角をδとしたときに、先行経由点における移動体の方向とδの偏差、ならびに、後続経由点における移動体の方向とδの偏差に関して許容される最大偏差をいう。
【0025】
(修正装置の全体構成)
図1(a)は、初期経路(修正前の経路記述パラメータ)2を入力装置4から入力し、その初期経路を好ましい経路に修正し、出力装置8から修正後経路(修正後の経路記述パラメータ)10を出力する、経路修正装置のシステム構成を示している。
入力装置4から入力した経路記述パラメータは、経路記述パラメータ記憶装置6に記憶される。後記するように、経路記述パラメータ記憶装置6の記憶内容は、計算の進行に伴って更新されていく。経路記述パラメータ記憶装置6は、修正途上の経路記述パラメータを記憶している装置ということができる。
【0026】
修正装置は、トータル評価値を計算するトータル評価関数記憶装置20を備えている。経路記述パラメータ記憶装置6に記憶されている経路記述パラメータを、トータル評価関数に代入することで、トータル評価値を計算することができる。
【0027】
トータル評価値は、下記の評価値の総和である。
第1評価値:目標位置のx座標値(目標x座標値)の修正量に依存する評価値である。本実施例では、高評価であるほど値が低い評価値を用いる。
図1(b)に例示されているように、目標x座標値の修正量がゼロであれば評価値がゼロであり、目標x座標値の修正量が増大すれば増大する評価値を用いる。目標x座標値の修正量がゼロに近いほど、高く評価される。目標x座標値を示すxNの修正量ΔxNから第1評価値が特定される。
第2評価値:目標位置のy座標値(目標y座標値)の修正量に依存する評価値である。
図1(c)に例示されているように、目標y座標値の修正量がゼロであれば評価値がゼロであり、目標y座標値の修正量が増大すれば増大する評価値を用いる。目標y座標値の修正量がゼロに近いほど、高く評価される。目標y座標値を示すyNの修正量ΔyNから第2評価値が特定される。
第3評価値:目標姿勢の修正量に依存する評価値である。本実施例では、
図2を参照して後記するように、x軸の正方向と移動体26に固定されている基準線30がなす角度θiで目標姿勢を記述する。
図1(d)に例示されているように、目標姿勢の修正量がゼロであれば評価値がゼロであり、目標姿勢の修正量が増大すれば増大する評価値を用いる。目標姿勢の修正量がゼロに近いほど、高く評価される。目標姿勢を示すθNの修正量ΔθNから第3評価値が特定される。
離反距離評価値:障害物から移動体までの最短距離に依存する
評価値である。経路を示すx2,y2,θ2・・・xN,yN,θNから、障害物から移動体までの最短距離が計算でき、離反距離評価値が計算できる。離反距離評価値の一例が
図1(e)に例示されている。詳しくは
図4、
図5を参照して後記するが、移動体と障害物間の離反距離が接近するほど、低く評価される評価値(大きな評価値)を与える。
【0028】
技術的には、上記によって、目標値を修正して移動体と障害物が重なり合わない経路に修正することができるが、本実施例では、さらに下記の評価値を利用する。
経路長評価値:出発点から目標点に至る経路の全長が短いほど高評価を与える評価値である。経由点を示すx2,y2,θ2・・・xN,yN,θNから、出発点から目標点に至る経路の全長に対応する量が計算でき、経路長評価値が計算できる。
偏差評価値:移動体の向き(車体方向、姿勢方向、移動体方向といってもよい)と移動方向(経路方向)の偏差が小さいほど高評価を与える評価値である。移動方向がスムースに変化する経路が高評価されるように作用する。経路を示すx2,y2,θ2・・・xN,yN,θNから、偏差に対応する量が計算でき、偏差評価値が計算できる。
【0029】
修正装置は、トータル評価関数を経路記述パラメータ(x2,y2,θ2・・・xN,yN,θN)で偏微分した偏微分関数記憶装置12を備えている。すなわち、中間経路点(x2,y2,θ2・・・xN−1,yN−1,θN−1)で偏微分した関数と、目標位置と目標姿勢(xN,yN,θN)で偏微分した関数を記憶している。トータル評価関数をxiで偏微分した偏微分関数と、トータル評価関数をyiで偏微分した偏微分関数と、トータル評価関数をθiで偏微分した偏微分関数に代入することで、3種類の偏微分係数を計算することができる。
図1では、偏微分関数が一つのブロック12にまとめて図示されているが、xiの偏微分関数と、yiの偏微分関数と、θiの偏微分関数に分けて図示してもよい。
【0030】
経路記述パラメータを変数とするトータル評価関数が与えられ、経路記述パラメータを変数とする偏微分関数(トータル評価関数を経路記述パラメータで偏微分した関数)が与えられれば、既知の数学的手法で、トータル評価関数が極値をとる際の経路記述パラメータの値を決定することができる。本実施例では、好ましい経路ほど小さな評価値を与えるトータル評価関数を採用する。本実施例では、トータル評価関数が極小値をとる経路記述パラメータの値を決定することによって、好ましい経路に修正する。本実施例では、好ましい経路に修正する計算速度と安定性にすぐれている準ニュートン法を採用する。準ニュートン法に限られず、最急降下法、ニュートン法、共役勾配法などの勾配法を用いることもできる。
【0031】
多変数関数が極小値をとる条件を探査する勾配法では、偏微微分関数を利用して、関数値を極小化させる変数の修正方向を決定する。多変数関数の場合には、各変数の修正量の比率を計算する。ここでは、それを探索方向ベクトルという。修正装置は、探索方向ベクトルを計算する装置14を備えている。
【0032】
多変数関数が極小値をとる条件を探査する勾配法では、修正量の大きさが問題となる。修正量が過大であれば、修正方向ベクトルは正しくても、極小点を超えた範囲で関数値(トータル評価値)を計算することになり、トータル評価値が増大するという計算結果になってしまう。修正量が過小であれば、修正によって得られる関数値の減少量が微小となり、探索速度が遅くなる。本実施例の修正装置では、複数種類のステップ幅(修正量を決めるパラメータ)を順に用意しておき、関数値が減少する制約下で最大の修正量を採用するステップ幅設定手段16を備えている。
【0033】
探索が進行して極小位置に接近すると、探索方向ベクトル計算装置14で計算された方向にステップ幅設定手段16で設定された修正量だけ修正しても、評価値が変化しなくなる。極小点では、偏微分係数がゼロであることに対応する。
本実施例では、探索方向ベクトル計算装置14で計算された方向にステップ幅設定手段16で設定された修正量だけ修正することで関数値が変化(減少)するうちは、修正後の経路記述パラメータによって、経路記述パラメータ記憶装置6の記憶内容を更新する。更新した経路記述パラメータを用いて極小化条件探索処理を繰り返す。経路記述パラメータ記憶装置6の記憶内容は、計算途上の経路記述パラメータに更新されていく。
探索方向ベクトル計算装置14で計算された方向にステップ幅設定手段16で設定された修正量だけ修正しても評価値が変化しなくなると、極小点が検索されたとして処理を終了する。その段階の経路記述データ10が、出力装置8から出力される。
【0034】
(経路記述データの詳細)
図2において、参照番号26は移動体を示し、出力装置8から出力された修正後経路に沿って移動する。参照番号24は移動体26を包含する凸包であり、
図1の修正装置では、凸包24と障害物間の最短距離を求めて離反距離を計算する。参照番号28は移動体26に固定されている基準点であり、参照番号30は移動体26に固定されている基準線である。
経路は、データPi=(xi,yi,θi)(ここでi=1,2,・・N)で定義される。移動体26は、基準点28が(xi,yi)の座標点を辿るように移動する。また、移動体26は、基準線30がθiの方向を向く車体姿勢をとる。本明細書では、角度をx軸の正方向から反時計回転方向に計測した角度で示す。
参照記号Ojは、移動体26の走行を妨げる障害物である。本明細書では、出発点(x1,y1)から目標点(xN,yN)までの経路を決定する際に考慮する必要がある障害物がM個存在するものとする。
【0035】
(初期経路の詳細)
図1の修正装置に入力される初期経路は、RRTのような確率的手法あるいはA
*探索のようなグリッド探索法で求めた大局的経路である。データPi=(xi,yi,θi)のN個の並びで記述されている。A
*探索のようなグリッド探索法で経路を探索すると、移動体方向θiは計算されない。この場合、経路方向と移動体方向が等しいとすることができる。あるいは別の手法で、移動体方向を決定してもよい。
確率的手法あるいはグリッド探索法で狭い空間を通過する経路を求める場合、探索に失敗することがある。確率的手法による場合には、実用的な時間内に通過経路が計算できないことがある。グリッド探索による場合は、離散化されたグリッドが粗すぎて通過経路を発見できないことがある。探索失敗を避けるために、初期経路の探索過程で制約条件を緩和し、実用的な時間内に初期経路が探索されるようにしている。
上記の事情等によって、初期経路には下記の問題が内在されていることがある。
(1)目標位置および/または目標姿勢が適切でなく、目標位置および/または目標姿勢をわずかに修正すれば移動体と障害物と重なり合わないのに、初期データの目標位置と目標姿勢によると、移動体と障害物と重なりあって走行不能となってしまう。
(2)移動体と障害物が干渉する(重なりあう)経路である。
(3)移動体と障害物が重なり合わないまでも非常に接近する経路である。
(4)経路方向が急激に変化する経路である。
(5)経路方向と移動体方向が不一致であって、移動体が追従できない経路情報である。
図1の修正装置は、上記の問題を解消する側に修正した経路を計算する。初期経路のうち、出発点のデータP1=(x1,y1,θ1)は、確定的なものであり、
図1の修正装置で修正することはない。経由点のデータPi(i=2,・・,N−1)は最善なものでない可能性があり、
図1の修正装置で修正する。目標点のデータPN(i=N)も最善なものでない可能性があり、
図1の修正装置で修正する。その修正計算のために、修正装置は下記の6種類の評価関数を利用する。
【0036】
(第1評価値)目標x座標値を示すxNの修正量ΔxNから第1評価値が特定される。目標x座標値の初期値が好ましいものでなく、実際には障害物と移動体が重なり合ってしまう位置であることがある。目標x座標値の初期値が好ましいものでない場合、それを与えられた値として固定的に扱うと、走行可能な経路に修正できず、移動体が立ち往生することがある。本実施例では、目標x座標値を修正対象に含めるために、目標x座標値xNの修正量ΔxNに対して有限の評価値を与える。本実施例では、
図2の(2)に示すように、目標x座標値の修正量ΔxNの二乗に比例する第1評価値を与える。K1は重み係数である。
目標x座標値の初期値によると移動体と障害物が重なりあう場合、目標x座標値を修正することで第1評価値が増大する(低評価に変わる)が、反面、離反距離評価値が高評価値に変わる。トータル評価値を極小化するプロセスを実行することで、移動体と障害物が重なりあわない位置に目標x座標値を修正する結果が得られる。目標値x座標値を修正することで移動体が障害物と重なりあわないで移動できる経路に修正される。
【0037】
(第2評価値)目標y座標値を示すyNの修正量ΔyNから第2評価値が特定される。本実施例では、
図2の(2)に示すように、目標y座標値の修正量ΔyNの二乗に比例する第2評価値を利用する。K2は重み係数である。第2評価値を導入すると、目標y座標値を修正することによって移動体が障害物と重なりあわないで移動できる経路に修正される。
【0038】
(第3評価値)目標姿勢を示すθNの修正量ΔθNからから第3評価値が特定される。本実施例では、
図2の(2)に示すように、目標姿勢の修正量ΔθNの二乗に比例する第3評価値を利用する。K3は重み係数である。第3評価値を導入すると、目標姿勢を修正することによって移動体が障害物と重なりあわないで移動できる経路に修正される。
【0039】
本実施例では、第1〜第3評価関数に、目標値の修正量ΔxN,ΔyN,ΔθNの二乗に比例する評価関数を用いる。その重み係数K1,K2,K3は、それぞれ固有に決めることができる。例えば、x軸に沿って進行して駐車するような場合、目標姿勢の修正に関しては強く拘束し、目標x座標値の修正に関しては弱く拘束するのが適当なことがある。そのためには、目標姿勢の修正量ΔθNに対して敏感に変化する関数を第3評価関数とし(重み係数K3に大きな値を用いる)、目標x座標値の修正量ΔxNに対して鈍感に変化する関数を第1評価関数とする(重み係数K1に小さな値を用いる)。その場合、姿勢に関しては初期値に近い値を維持するためにx軸に沿った姿勢を維持する一方において、x方向の位置に関しては柔軟に修正して障害物までの実際距離を優先して停止させるという経路に修正することができる。
また第1〜第3評価関数の重み係数を変えるのに代えて、それぞれに固有の関数形を利用してもよい。
【0040】
(経路長評価値)
出発点から目標点に至る経路の全長が短いことが好ましい。全長が短い経路に修正されるように、修正装置は経路長評価関数を利用する。経路長評価関数を、
図2の(3)式に示す。係数Kaは、トータル評価値に占める経路長評価値の重みを示している。距離liは、座標点(xi,yi)から座標点(xi+1,yi+1)までの距離である。i=1からN−1までの総和を取れば、経路全長に関する評価値が求められる。全長が短いほど小さな評価値が計算される。修正装置は、トータル評価値を極小化する経路に修正する。全長が短いほど小さな評価値が計算される経路長評価関数を導入するために、修正装置によって全長が短い経路に修正される。
図2の(3)式に示す経路長評価関数を極小化すると、
(1)全長が短くなる経路に修正され、
(2)P2,・・,PN−1というN−2個の経由点を、等間隔に配置した経路記述データに修正される(全長が等しければ、経由点が等間隔である場合の評価値の方が、経由点が等間隔でない場合の評価値よりも小さくなる)。
経路長評価関数以外の評価関数をも利用するために、全長のみを考慮して修正されるものでない。目標位置を出発位置に近づける修正をすれば、経路長評価値は高評価に修正されるが、目標位置を大きく修正すれば第1〜第3評価値が低評価に修正されるので、目標位置が出発位置にむやみに近づけられることはない。
【0041】
(偏差評価関数)
図2に示すように、移動体26は、移動方向(経路方向)と独立して車体方向(姿勢方向、移動体方向)を変える機構を備えていないから、経由点Pi=(xi,yi)を辿って移動する際の移動体方向θiが経路方向δiに一致することが保証されていない。その問題を解消するために、修正装置には経路方向δiと移動体方向θiを一致させるように修正する評価関数が導入されており、移動体がPi=(xi,yi)を辿って移動すると、移動体方向θiが経路方向δiによく一致する関係が得られるようにしている。移動方向から独立して車体方向を変える機構を備えていない移動体26の経路を修正する際に、経路方向δiと独立して移動体方向θiを定義する経路記述データを採用しても、問題が生じないようにしている。
【0042】
図3の(b)は、経由点Piから経由点Pi+1に至る経路方向(δi)と、移動体方向の偏差を示している。実際には、経由点Piにおける移動体方向θiと、経由点Pi+1における移動体方向θi+1は相違している。そこで、2種類の偏差評価関数を導入している。
第1偏差評価関数は、
図3の(3)に示すように、経路方向δiと移動体方向θiの偏差φiを自乗した値を計算する。係数Kbは、トータル評価値に占める第1偏差評価値の重みを示している。
図3の(4)に示すように、i=1からN−1までの総和を取れば、第1偏差評価値を経路全長に亘って累積した第1偏差評価値Ubを計算することができる。偏差φiが小さいほど評価値が小さくなる。評価値を極小化する方向に修正すると、偏差φiが小さくなる経路に修正される。
第2偏差評価関数は、
図3の(5)に示すように、経路方向δiと移動体方向θi+1の偏差ηiを自乗した値を計算する。係数Kcは、トータル評価値に占める第2偏差評価値の重みを示している。
図3の(6)に示すように、i=1からN−1までの総和を取れば、第2偏差評価値を経路全長に亘って累積した第2偏差評価値Ucを計算することができる。偏差ηiが小さいほど評価値が小さくなる。評価値を極小化する方向に修正すると、偏差ηiが小さくなる経路に修正される。
【0043】
移動体方向θを考慮すると、障害物までの離反距離を増大させられることがある。移動体方向θを加味して経路を修正すると、移動体方向θを振りながら移動することで移動体が障害物の間を縫って移動する経路に修正することができる。この場合には、移動体方向θによく一致する経路方向δとなる経由点位置に修正されることになる。
図3の(a)と(b)比較すると明らかに、経由点Piで第1評価関数と第2評価関数を計算することになる。その際には、共通して移動体方向θiを利用する。第1評価関数は、移動体方向θiと経路方向δiの偏差φiが小さくなる方向に修正する。第2評価関数は、移動体方向θiと経路方向δi−1の偏差ηi−1が小さくなる方向に修正する。共通の移動体方向θiに対する偏差が小さくなる側に修正すると、経路方向δi−1と経路方向δiの差も小さくなっていく。経路方向δi−1と経路方向δiの差が大きいことは、経路が急激に方向を変えることを意味する。経路方向δi−1と経路方向δiの差を小さくすることは、緩やかに方向を変える経路に修正することに相当する。1つの経由点Piに対して、その経由点Piにおける移動体方向θiと直前の経路方向δi-1の偏差ηi-1に対応する第2評価関数と、その経由点Piにおける移動体方向θiと直後の経路方向δiの偏差φiに対応する第1評価関数を用いて評価値を計算するようにすると、急激に方向を変える経路から緩やかに方向を変える経路に修正される。経路の平滑化処理が実施される。
【0044】
(離反距離)
図4は、移動体が経由点Piに移動した状態を示し、近傍にj番目の障害物が位置している状態を示している。移動体26の凸包24の存在範囲は、座標値(xi,yi)と移動体方向θiから計算することができる。障害物は、動かない凸包32の存在範囲を記述するデータで記述されている。凸包24と凸包32の位置と姿勢が与えられれば、GJKアルゴリズムなどの既知の数学手法によって、凸包24の輪郭上にあって凸包32に最も近い点Ri,jと、凸包32の輪郭上にあって凸包24に最も近い点Oi,jを計算し、その距離lei,jを計算することができる。図示の場合は、最近接点が頂点である場合を例示しているが、辺上に最近接点がある場合にも対応することができる。
図4の(7)から(9)は、そうして求められる近接点Oi,jの座標値と、近接点Ri,jの座標値と、最短距離(離反距離)lei,jの値を示している。
【0045】
(離反距離評価関数)
図5(a)は、離反距離評価関数Uei,jを示している。離反距離lei,jがポテンシャル増大開始距離le0以上であれば、離反距離評価値はゼロである。離反距離lei,jがポテンシャル増大開始距離le0以下になるほど接近すると、離反距離評価値は増加し始める。移動体と障害物が接近して離反距離lei,jがゼロに近づくほど、離反距離評価値は大きくなる。移動体と障害物が接近して離反距離lei,jがゼロとなっても、離反距離評価値は無限大に発散しない。有限の値が計算される関数形を採用している。
移動体と障害物が接近して重なりあう場合、GJKアルゴリズムでは正の値を持つlei,jが計算される。この場合のlei,jは、移動体と障害物が重なりあっている距離であり、両者を離反させるのに必要な移動距離に等しい。本実施例では、移動体と障害物が接近して重なりあう場合には、lei,jが負の値を持つ距離だと扱う。
図5の(b)は、離反距離評価関数を示している。上記の離反距離評価関数を用いると、移動体が障害物に接近し、接触し、深く重なりあうのに伴って、離反距離評価値が一様に増加する関係が得られる。係数Keは、離反距離評価関数の重み係数である。
実際には、移動体と障害物が重なりあう現象は生じない。しかしながら、修正計算の途上では、移動体と障害物が重なりあう経路に関する計算が必要とされることがある。例えば、移動体と障害物が重なりあう初期経路を、重なり合わない経路に修正する場合には、移動体と障害物が重なりあう経路に関する計算が必要とされる。本実施例では、移動体と障害物が重なりあう場合も有限の離反距離評価値が計算される離反距離評価関数を用いるので、修正計算の途上で計算不能に陥ることがない。
障害物はM個存在する。そこで、移動体が経由点Piにあるときの離反距離評価値は、
図5の(10)式で求められる。また、経路の全長に亘って累積した離反距離評価値は、
図5の(11)式で求められる。出発点は、修正作業の対象でないので、i=2,・・Nまで加算する。
【0046】
(トータル評価関数)
本実施例では、下記の式3で示されるトータル評価関数を利用する。式3において、U1は第1評価関数であり、U2は第2評価関数であり、U3は第3評価関数であり、Uaは経路長評価関数であり、Ubは第1偏差評価関数であり、Ucは第2偏差評価関数であり、Ueは離反距離評価関数である。
【数3】
【0047】
本実施例では、トータル評価関数を経路記述パラメータxi,yi,θiの各々で偏微分した偏微分関数を利用して、トータル評価値を極小化する経路記述パラメータxi,yi,θiを探索する。
トータル評価関数=第1評価関数+第2評価関数+第3評価関数+経路長評価関数+偏差評価関数+離反距離評価関数であるために、
トータル評価関数の偏微分関数=第1評価関数の偏微分関数+第2評価関数の偏微分関数+第3評価関数の偏微分関数+経路長評価関数の偏微分関数+偏差評価関数の偏微分関数+離反距離評価関数の偏微分関数の関係が成立する。
【0048】
(第1〜第3評価関数の偏微分関数)
図2の(2)に示す第1評価関数U1をΔxNで偏微分した偏微分関数を求めると下記の式(a)に示すものとなる。ここで、xNは修正後の目標x座標値であり、xNOは目標x座標値の初期値である。第2評価関数の偏微分関数は下記の式(b)に示すものとなる。ここで、yNは修正後の目標y座標値であり、yNOは目標y座標値の初期値である。第3評価関数の偏微分関数下記の式(c)に示すものとなる。θNは修正後の目標姿勢であり、θNOは目標姿勢の初期値である。
【0049】
(経路長評価関数の偏微分関数)
図2の(3)に示した経路長評価関数Uaの偏微分関数を求めると下記の式(d),(e),(f)で示すものとなる。
【数4】
【0050】
(偏差評価関数の偏微分関数)
図3の(4)(6)に示した第1偏差評価関数Ubと第2偏差評価関数Ucの偏微分関数から偏差評価関数Ub+Ucの偏微分関数を求めると下記となる。
【数5】
【0051】
(離反距離評価関数の偏微分関数)
離反距離評価関数の偏微分関数の導出過程を、
図6に示す。その結果、
図5の(10)に示した離反距離評価関数Uei,j、すなわち移動体が経由点Piにあるときのj番目の障害物までの離反距離に対する評価関数の偏微分関数を求めると、下記となる。
【数6】
上記において、ρxとρyは、移動体24に固定された座標系での、移動体側の最近接点Ri,j(
図4参照)の座標値である。
【0052】
(評価関数の極小化過程)
多変数関数とその関数の偏微分関数が判明していれば、既知の数学的手法で、関数を極小化する変数の値を決定することができる。その問題は、最急降下法、ニュートン法、準ニュートン法、共役勾配法などの勾配法で解くことができる。本実施例では、計算の収束速度と安定性のバランスが優れている準ニュートン法を用いる。
【0053】
準ニュートン法などの勾配法では、計算途上の変数値(複数個の変数を扱うからベクトルとなる)における関数値から、関数値を減少させる変数の修正方向を特定する。偏微分関数から変数の変化に起因して関数値が変化する量を計算することができるから、関数値を敏感に減少させる変数の修正方向を特定することができる。次に、修正量を仮定し、変数群を修正方向へ修正量だけ修正した場合の関数値を計算する。関数値を敏感に減少させる修正方向を用いることから、関数値は減少するはずである。しかしながら、修正量が大きすぎれば、関数が極小値を取る位置を越えて修正することになり、関数値が増大してしまう。そこで、関数値が減少するという制約を満たす修正量の範囲内で修正する。勾配法では、
(1)現在の変数値の並び(ベクトル)よりも関数値が敏感に減少する修正方向を計算し、
(2)関数値が減少するという制約を満たす修正量で変数値の並びを修正方向に修正し、
(2)で修正された変数値の並びを(1)の変数値の並びとして(1)と(2)を繰り返す。
この結果、変数値の並びは、関数値を極小化するものに近づいていく。
関数値を極小化する変数値に近づくと、偏微分係数がゼロなって、変数値を修正方向に修正量だけ修正しても関数値は変化しなくなる。このことから、関数値を極小化する変数の並びに修正されたことがわかる。
【0054】
準ニュートン法では、修正方向dkが下記の式で計算される。なお添え字kは、前記(1)(2)の修正処理をすでにk-1回繰り返しており、これからk回目の修正処理を実施することを示している。
【数7】
上記式の各項目は下記に示されるものである。
【数8】
【数9】
【0055】
本実施例では、修正量を下記の表に従って変えていく。
【表1】
本実施例では、数式7で決定された修正方向に、予め決めておいた修正量に「1.0」を乗じた修正量だけ修正し、関数値を計算する。関数値が増加すれば、「1.0」の乗数では過大であるとし、乗数を「0.1」に変更して再度関数値を計算する。それでも関数値が増加すれば、乗数を「0.01」に変更する。それでも関数値が増加すれば、乗数を「0.001」に変更する。
【0056】
極小値に近づくにつれ、修正前のトータル評価関数の値と修正後のトータル評価関数の値の差の絶対値は減少していく。本実施例では、その差の絶対値が、閾値(本実施例では10
−6)を下回ったときに、トータル評価値を極小化する経路記述パラメータに並びに修正されたとして修正処理を終了する。そうして修正された経路記述パラメータの並びを出力装置8から出力する。
【0057】
上記の修正計算を実行した結果、障害物に近い範囲で経由点が疎に分布し、障害物に遠い範囲で経由点が密に分布する経路記述データに修正されることがある。経由点が疎に分布すると、移動体と障害物の干渉の有無を判定する処理の精度が低下するので好ましくない。経由点が密に分布すると、曲率半径が小さな急カーブに修正される可能性があり、それも好ましくない。
それを避けるためには、全部の経由点が等間隔で配置されているという条件を課して修正処理を進めることが好ましい。下記式を加えて修正処理を進めれば、全部の経由点が等間隔で配置されている経路記述データに修正される
【数10】
【0058】
また、計算された移動体方向θと実際の移動体方向が一致するようにするためには、経路方向δと移動体方向θの偏差に関して許容偏差角を設定しておいてもよい。下記式を加えて修正処理を進めれば、経路方向δと移動体方向θの偏差が許容偏差角η0,φ0以下であることが保証されている経路記述データに修正される。経路方向δと移動体方向θの偏差が小さい経路が計算されていれば、計算された移動体方向θと実際の移動体方向はよく一致する。
【数11】
【0059】
移動体と障害物の離反距離に関して最短値を設定して修正作業を進めることもできる。下記式を加えて修正処理を進めれば、移動体と障害物の最短離反距離が許容距離minlen以上であることが保証されている経路記述データに修正される。許容距離minlenは、
図5に示した増加開始距離le0に等しくてもよいし、異なっていてもよい。
【数12】
【0060】
また、数式10から12のうちの2種または3種を用いて経路修正処理を実施してもよい。
【0061】
図7は、移動体が移動可能な範囲と、出発点P1と、移動体が出発点P1にあるときの凸包24と、目標点PNと、移動体が目標点PNにあるときの凸包24を例示している。
図8は、初期経路を例示している。初期経路によると、移動体と障害物が重なりあってしまう。
図9は、トータル評価値を低下させる経路記述データの探索処理を30回実施した時点での経路を示している。
図10は、探索処理を60回実施した時点での経路を示している。
図11は、探索処理を138回実施した時点での経路を示している。138回の探索処理の結果、経路記述データはそれ以上に修正されなくなった。移動体は、障害物を避けながら、目標点に目標姿勢で到達する。
【0062】
図12は、修正計算の進行によって評価値(ポテンシャル)が変化していく様子を示している。138回修正計算を繰り返した時点で、トータル評価値(全ポテンシャル)が極小化されることが確認される。
【0063】
(第2実施例)
図13は、初期経路記述データ132における目標位置(xNO、yNO)132eが不適切に設定されており、実際には障害物と干渉する範囲136内に設定されていた場合を例示する。また、目標姿勢に沿った座標軸における目標座標値の修正量に対して第1評価関数が設定されており、目標姿勢に直交する座標軸における目標座標値の修正量に対して第2評価関数が設定されている場合を例示している。さらに、目標姿勢に沿った座標軸での目標位置の修正量に対して第1評価関数が敏感に変化し、目標姿勢に直交する座標軸での目標位置の修正量に対して第2評価関数が鈍感に変化し、目標姿勢の修正量に対して第3評価関数が敏感に変化する場合を例示している。この場合、目標姿勢に直交する座標軸上での目標座標が柔軟に修正される。その結果、干渉範囲136外に目標位置を修正する際に、主として目標姿勢に直交する方向に修正する探索が行われ、134eに示す修正後目標位置が探索され、目標値を修正することによってトータル評価値が極小化された場合を例示している。
【0064】
第1・第3評価値が敏感に変化し、第2評価値が鈍感に変化する場合、目標姿勢に直交する方向の
修正量αに対して、目標x座標の修正量ΔxNと目標y座標の修正量ΔyNは
図14に示すものになる。この関係を利用して、目標姿勢に直交する方向の修正量αに関するトータル評価値の偏微分関数を得ることができ、それによって、トータル評価値を極小化するαの値を探索することができる。第2実施例によると、目標位置の初期値が不適切な場合に、進行方向と直交方向に目標位置をずらす経路に修正されることになる。
【0065】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
例えば、実施例ではトータル評価値に経路長評価値と偏差評価値を組み込んでいるが、これらの一方または双方を外してもよい。また実施例では、トータル評価値に目標修正量第1評価値と目標修正量第2評価値と目標修正量第3評価値の全部を組み込んでいるが、これらのうちの1種または2種のみを採用してもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。