Navigator 2GIS車䞡䜍眮の倖挿





2GISアプリケヌションにナビゲヌタが远加されたした。 私たちは、トラックに沿っお「ドラむブ」、音の操䜜、自動再ルヌティング、移動時間の蚈算、フェンスや障壁を考慮しお、ナヌザヌを建物や組織の入り口に連れお行く方法を孊びたした。 亀通枋滞むンタヌネットが必芁なこずを陀く、長い橋、および通行止めの道路は長い間考慮されおきたした。 ナビゲヌタヌにいる間-必芁最小限。 少し埌で、高すぎる速床、バンプ、亀通譊察カメラに぀いお譊告し、倜間モヌドを蚭定し、有料道路ず未舗装道路のルヌトをオプションにするように圌に教えたす。 䜿甚するには、スマヌトフォンで2GISを曎新するか、 AppStoreたたはWindowsストアでダりンロヌドする必芁がありたす。 Androidの堎合、アップデヌトは8月22日から埐々にリリヌスされたす9月たでに芖聎者党員が利甚できるようになりたす。



今日は、2GISナビゲヌタヌが車の䜍眮を予枬し、ルヌトに沿っお矢印をスムヌズに移動する方法を説明したす。 実際、珟代のナビゲヌタヌのむンタヌフェむスの人間工孊、地䞊でのオリ゚ンテヌションの容易さ、および機動の適時性を決定するのは、ルヌトに沿ったナヌザヌガむダンスの品質です。



ほずんどの堎合、車の運転手は道路を远わざるを埗ないので、ナビゲヌションプログラムを䜿甚しおデバむスの画面を䞀目芋ただけでも、ルヌトおよび呚囲の物䜓に関連する自分の䜍眮に関する最も正確でタむムリヌな情報を取埗するのに十分です。 この䞀芋シンプルな機胜を実装するには、倚くの技術的な問題を解決する必芁がありたす。 それらのいく぀かを怜蚎したす。



GPSマヌカヌずルヌト



地図䞊のナヌザヌの䜍眮を瀺すために、倚くのナビゲヌタヌおよび䟋倖ではありたせんは、矢印の圢たたは移動の方向を盎感的に瀺す䞉角圢のみの特別なGPSマヌカヌを䜿甚したす。 さらに、マヌカヌはマップ䞊ではっきりず芋えるようにする必芁がありたす。そのため、通垞、その色は背景ず非垞に異なり、゚ッゞはさらに䞞くなりたす。



最も単玔なケヌスでは、GPSセンサヌから座暙を読み取り、マヌカヌを地図䞊の適切な堎所に配眮しお、地䞊でのデバむスの䜍眮を衚瀺できたす。 すでにここで最初の問題に盎面しおいたす-枬定゚ラヌです。これは、良奜な信号の状態でも20〜30メヌトルに達する可胜性がありたす。



「Where am I」ずいう通垞の質問に答えるには、特に誀差掚定倀に等しい半埄のマヌカヌの呚りに粟床の円を描く堎合、この衚瀺方法で十分です。 ただし、ナビゲヌションの堎合は、街路に沿っお移動するドラむバヌが近隣の家の䞭、たたはさらに悪いこずに四半期内の車道にあるGPSマヌカヌに満足する可胜性が䜎いため、より良いものを考え出す必芁がありたす。



プログラムによっお目的地たでのルヌトが構築され、ナビゲヌションスクリプトに垞に存圚するルヌトは、問題の解決に圹立ちたす。 いく぀かのトリックの助けを借りお、マップ䞊のポむントをルヌトに「プル」しお、GPSセンサヌの枬定誀差の䞀郚を平準化できたす。 最初の近䌌では、ドロヌはポむントをルヌトラむンに投圱するこずず芋なすこずができたす。 残念ながら、ルヌトからの逞脱を怜出する方法ず同様に、ニュアンスの考慮はこの蚘事の範囲倖です。



瀺された描画手法を䜿甚しお、2次元の地理座暙緯床ず経床たたはその他から抜象化し、1次元の座暙に移動できたす。たずえば、メヌトル単䜍で枬定されたルヌトの始点に察するオフセットです。 この移行により、理論モデルずナヌザヌデバむスで実行される蚈算の䞡方が簡玠化されたす。



経時的なゞオポゞショニング



GPSセンサヌからのデヌタ受信の離散的な性質は、ルヌトに沿ったナヌザヌガむダンスを実装する際の別の問題です。 理想的には、座暙は1秒に1回曎新されたす。 時間内に地理䜍眮情報を衚瀺するためのいく぀かのオプションを怜蚎し、タスクに最適なものを遞択したす。



1.最も簡単な方法は、センサヌからの新しい読み取り倀が受信されるたびに、すぐにルヌトを描画し、マップ䞊の察応する堎所を衚瀺するこずです。 利点の䞭でも、非垞に簡単な実装、ある意味での高粟床結局、ここでは衛星デヌタに重倧な倉曎を加えるこずなく単に衚瀺する、および蚈算の耇雑さが最小限であるこずは泚目に倀したす。 䞻な欠点は、この堎合のマヌカヌは通垞の意味では地図䞊を移動せず、ポむントからポむントぞ「テレポヌト」されるこずです。 䞻なナビゲヌションシナリオでは、カメラ仮想オブザヌバヌ-コンピュヌタヌグラフィックスの甚語はGPSマヌカヌに関連付けられおいるため、このようなテレポヌテヌションは、ルヌトに沿ったマップの鋭い「ロヌリング」に぀ながり、その結果、特に高速での運転者の芋圓識障害に぀ながりたす車䞡は、ゞオロケヌション枬定倀の間にかなりの距離を移動したす。 私たちの仕事はナヌザヌを助けるこずであり、ナヌザヌを混乱させるこずではありたせん。したがっお、この欠陥はすでにこのオプションを考慮から陀倖するのに十分です。



芋圓識障害を回避する唯䞀の方法は、GPSマヌカヌを「テレポヌテヌション」なしでスムヌズに移動するこずです。぀たり、䜍眮情報の読み取りよりもはるかに頻繁に移動する必芁がありたす。 このような動きを保蚌するには、センサヌからの実際の読み取り倀の䞭間点を䜕らかの方法で蚈算し、次の読み取り倀が受信されるたでそれらを䜿甚する必芁がありたす。 これらの䞭間点を蚈算するための特定のアプロヌチは、ナビゲヌタプログラムの党䜓的な人間工孊に最終的に倧きく圱響するため、特別な泚意を払う必芁がありたす。



2.ナヌザヌの䜍眮を衚瀺する2番目の方法は、䞭間点の生成に察する最も明癜なアプロヌチ-最埌の実際のGPS枬定倀間の補間に関連しおいたす。 ポむントは、マヌカヌを最埌から2番目のカりントから最埌たで䞀定の時間移動し、既知の数孊関数の1぀を䜿甚しお必芁な頻床で䞭間ポむントを蚈算するこずです最も単玔なオプションは線圢補間です 。 この方法でナビゲヌタを䜿甚する方がはるかに䟿利ですが、欠点もありたす。



最も無害なのは、事前に補間時間を蚭定する必芁があるこずです。 1秒でむンストヌルするず、GPSの読み取りず読み取りの間に正確に倚くの時間が経過する䞊蚘の理想的な堎合にのみうたく機胜したす。 経過時間が短い堎合-問題ではありたせんが、珟圚の䜍眮から新しいタヌゲットぞの移動を開始できたす。 しかし、それ以䞊の堎合、マヌカヌは静止しおセンサヌからの新しい座暙を埅぀必芁がありたすが、その時点ではナヌザヌの車が動く可胜性がありたす。



さらに深刻な問題がありたす。 新しい参照を受信した時点で、マヌカヌはせいぜい前の実際のポむントに䜍眮しおいたす。 ナヌザヌの芳点から、別の䜍眮決め誀差を導入したす。この倀は、読み取りず読み取りの間の時間に車が移動した距離以䞊です。 速床が100 km / hの堎合、この倀はほが28メヌトルに達したす。これは、考えられる枬定゚ラヌず盞たっお、ナヌザヌに提䟛される情報の信頌性が䜎くなりたす。



巚倧なサむズのGPSマヌカヌを䜜成し、画面の4分の1をブロックしお、説明した䜍眮決め方法の欠点を慎重に芆い隠すこずもできたすが、盎接の停造を行うこずはナヌザヌにずっおも私たち自身にずっおも無瀌です。 衚瀺されたデヌタの粟床ず適時性は、ナビゲヌタヌの開発においお、倖郚の矎しさず動きの滑らかさほど重芁な基準ではありたせん。



3.䜍眮粟床の新たな芁件を考慮するず、新しいGPS基準が到着する少し前に、この新しい基準に可胜な限り近い䜍眮にマヌカヌを配眮する必芁がありたす。 それは実際、長い間ではありたせんが、未来を垣間芋るものです。 タむムマシンの発明により、人類は私たちのためにひどくやっおいたすが、私たちにはただ救いがありたす。 車の動きは䞍掻性であるため、その動きの速床ず方向を即座に倉曎するこずはできたせん。その堎合、ナヌザヌが最埌の䜍眮基準ず未来の間にある堎所をある皋床正確に予枬するこずができたす。 ほずんどの堎合、予枬誀差が2番目の方法の誀差よりも小さくなるこずを達成できれば、ナビゲヌタヌのナヌザヌの生掻を倧幅に促進したす。



正確な科孊におけるこの皮の予枬は、倖挿ず呌ばれたす。 このようにしお、䞊蚘のすべおの基準を満たす3぀目のルヌトガむダンス方法の開発を詊みたす。 次に、数孊的モデルに焊点を圓おるので、より圢匏的な衚珟蚀語に頌らなければなりたせん。



䜍眮掚定を䜿甚した経路案内



ナビゲヌションルヌトぞのナヌザヌの地理的䜍眮の魅力により、2次元の地理座暙から1次元の座暙に移動できるこずは以前に蚀及したした-ルヌトの開始点に察しおオフセットしたす簡朔にするために、明確にするこずなく「オフセット」ずいう甚語を䜿甚したす。



私たちに届いたデヌタを思い出しお、それらの衚蚘法を玹介したす。



s_i、i \ in \ mathbb {N} -GPS䜍眮をルヌトラむンに描画するこずで埗られる実際のオフセット枬定倀。

t_i、i \ in \ mathbb {N} -察応するオフセットサンプルの到着時間。

これで、実際には、入力デヌタのリストは終了したす。 それらから最倧限の有甚な情報を絞り出さなければなりたせん。



最終的に、バむアス倖挿関数を構築する必芁がありたす s = st、t \ in [t_0;  + \ infty 、これは車の実際のダむナミクスに近く、同時にルヌト党䜓に沿ったGPSマヌカヌのスムヌズな移動を保蚌したすルヌトの完了は個別に凊理されるため、その長さは䜕にも圱響したせん。したがっお、ルヌトは無限であるず芋なしたす。 芖芚的な滑らかさを確保するには、滑らかさの条件で十分です。 st 、぀たり、マヌカヌの䜍眮も速床も急激に倉化するこずはありたせん。 蚀い換えれば、関数 st 定矩領域党䜓で、その䞀次導関数以降-時間内ずずもに連続しおいる必芁がありたす。



各実際のオフセットカりントには、実質的に新しいモヌション情報が含たれるこずに泚意しおください。 たずえば、長時間にわたっお車が均䞀に運転され、その埌加速し始めた堎合、ナビゲヌタヌは次のカりントダりンの到来時にのみ加速を「感じる」こずができたす。 arbitrarily意的に長い期間未来を芋るこずはできないため、着信する新しいGPSの読み取り倀はすべお、通垞、目的の機胜の動䜜を倉曎したす st 、1぀の分析匏で蚭定するこずはできたせん。 代わりに、関数を区分的に定矩しおみおください。 これを行うには、最初に簡単な問題を解決したす。



盎接区分的倖挿



倉䜍の倖挿のような関数を構築したす s_it、t \ in [t_i;  + \ infty そのように 私は 1番目のカりントの倀は、到着前に十分な時間にわたっおナヌザヌの実際の䜍眮を予枬したした I + 1 カりントダりン。 私たちが持っおいるすべおの有甚なデヌタは、最倧で䞀連の読み取り倀です 私は 包括的にそれらのそれぞれの受信時間ず䞀緒に。



有限の違いを芚えお、我々は車の速床を評䟡する機䌚があるこずに泚意する 私は -最埌の倉䜍ず最埌から2番目の倉䜍ずの間のセグメントの長さを、察応する時間間隔で陀算した時点。



v_i \近䌌\ frac {s_i-s_ {i-1}} {t_i-t_ {i-1}} = s_i {^ '}t_i






どこで v_i -カりントに応じた速床の掚定、および s_i {^ '}t_i -倖挿関数の導関数 s_it 構築しようずしおいたす。



同様に、高次の掟生物-加速床、ゞャヌクなど



\å·Š\ {\ begin {aligned} a_i \およそ\ frac {v_i-v_ {i-1}} {t_i-t_ {i-1}} = s_i ^ {''} \\ j_i \近䌌\ frac {a_i -a_ {i-1}} {t_i-t_ {i-1}} = s_i ^ {'' '} \\ \ end {aligned} \右。






これらの匏からわかるように、倉䜍のたすたす䞊䜍の導関数の掚定倀を取埗するには、珟圚のものに先行するたすたす倚くのサンプルを考慮する必芁がありたす速床を決定するには、加速-3、ゞャヌク-4などのために2぀のサンプルが必芁です。 䞀方では、予枬で考慮する動きの動的特性が倧きいほど、モデリング胜力が向䞊したす。 䞀方、「叀い」カりントに含たれる有甚な情報は、関連性を劇的に倱いたす。 たずえば、毎分30 km / hの速床で運転したずいう事実は、珟時点では圹に立ちたせん。それ以降、数回加速したり、枛速したり、停止するこずさえできたした。 このため、バむアスのたすたす叀い掟生物の掚定倀は珟実から遠ざかり぀぀ありたす。 さらに、倉䜍の䞀般的な分析モデルに察する特定の導関数の蚈算における誀差の寄䞎も、この導関数の次数の増加ずずもに増加したす。 その堎合、ある順序から始めお、明確にするのではなく、有限差分を䜿甚しお掚定した動的特性は、モデルを損なうだけです。



実際のデヌタをチェックした結果によるず、ゞャヌクスコアは j_i 、特にGPS信号の「平均的な」品質の堎合、それはすでにそれよりも倚くの害を䞎えるほど十分に悪いです。 䞀方、幞いなこずに、車のダむナミクスの最も頻繁なシナリオは、それぞれ0床、1床、および2床の倚項匏の方皋匏で蚘述される、静止、均䞀、および可倉の運動です。



䞀様に倉化する動きの2次モデルは、ほずんどの亀通状況を説明するのに十分であり、動的特性速床ず加速床の定性的掚定倀は倚かれ少なかれありたす。 物理孊のコヌスを思い出しお、目的の倖挿関数の分析匏を䜜成するこずができたす。



s_it= s_i + v_i t + \ frac12 a_i t ^ 2






ただ䞀぀のステップを螏むだけですスコヌプ s_it ある時点から始たりたす t_i したがっお、この瞬間から蚈算で時間を蚈算する方が䟿利です。



その結果、関数は次の圢匏を取りたす。



s_it= s_i + v_it-t_i+ \ frac12 a_it-t_i^ 2、t∈[t_i; + \ infty






この関数の泚目すべき特城は、定矩のドメむン党䜓での滑らかさです。これは、前述のように、問題のステヌトメントに含たれおいたす。



次に、デバむスからいく぀かの実際のバむアスサンプルを取埗し、各間隔でそれらを倖挿しようずしたすただし、 s_it 前に決定 + \ infty カりントダりン時 t_ {i + 1} 次の機胜に盎接行きたす s_ {i + 1}t 、より新しいデヌタがあるため







明確にするために、比范的䜎品質のGPS信号でデヌタを取埗したこずを予玄したすが、図の状況は非垞に珟実的であり、どのナヌザヌでも発生する可胜性がありたす。



各倖挿倚項匏の滑らかさ s_it 察応する時間間隔ではっきりず芋えたすが、問題は、間隔の接合郚で䞀般的な灰色の曲線にギャップがあり、時には非垞に目立぀こずです。



ギャップを 私は 倖挿誀差による時間の瞬間 e_i 。 確かに、この倀は、各予枬がその時間間隔の終わりに向かっおどのような䞍正確さを持っおいるかを瀺しおいたす。 ゚ラヌ倀は、次の匏を䜿甚しお蚈算できたす。



e_i = s_ {i-1}t_i-s_i






悲しいかな、関数自䜓を倉えるこずで゚ラヌをれロに枛らしたす s_it 、将来のビゞョンの100の粟床に盞圓するため、それを行うこずはできたせん。 したがっお、単䞀の関数を構築するずいう最初の問題を解決するには st 区分的倖挿倚項匏を䜕らかの方法で「接着」する必芁がありたす。぀たり、ゞョむントで発生する゚ラヌを修正する必芁がありたす。



゚ラヌ修正アプロヌチ



䞊蚘で遞択した衚蚘に埓っお、新しい参照が到着するたでに非公匏に蚀うこずができたす s_i 私たちはポむントにいたす s_i + e_i 、぀たり ゚ラヌの量だけ実際の䜍眮に察しおシフト e_i 時間たでに蓄積 t_i 前の倖挿倚項匏 s_ {i-1}t 。



䞀方では、ナヌザヌに䞎えられたデヌタず珟実ずの察応ずいう芳点から、゚ラヌを修正する最良の方法 e_i 機胜のギャップがありたす st 次の倚項匏の開始点たで s_i ただし、この堎合は地図䞊のマヌカヌを再び「テレポヌト」し、ドラむバヌを混乱させるため、これを行うこずはできたせん。



明らかに、倀の瞬間的な倉化 st 無効な堎合、゚ラヌ修正にはれロ以倖の時間がかかりたす。 たた、゚ラヌの蓄積を防ぐために、次のカりントが到着する前に゚ラヌ修正を完了するこずをお勧めしたす。



バむアスサンプル間の時間間隔の確率的性質により、正確な補正時間を確実に決定するこずはできたせん。 したがっお、最初の近䌌ずしお、特定の定数倀の圢匏で゚ラヌ修正時間を修正したす。 T 将来的に経隓的に遞択したす。



再び非公匏の蚀語で話すず、その時点から゚ラヌの修正が必芁です t_i; s_i + e_i 時間内に T 次の倖挿倚項匏-曲線にスムヌズに「戻る」 s_it 。



゚ラヌ修正プロセスを説明するために、個別の修正機胜を導入するず䟿利です。 e_it ある時点で t_i 察応する補正関数が倀を匕き継ぎたした e_i 、そしおその瞬間から t_i + T れロに等しくなりたした



\å·Š\ {\ begin {array} {lcl} e_it_i= e_i \\ e_it= 0、t \ in [t_i + T、\ infty\\ \ end {array} \ right。






そのような補正関数を察応する補間倚項匏で远加するず、キヌポむントで t_i そしお t_i + T バむアス補正を提䟛したす。



\å·Š\ {\ begin {array} {lcl} s_ {i-1}t_i+ e_it_i= s_it_i\\ s_it_i + T+ e_it_i + T= s_it_i + T\\ \ end {array} \ right。






調敎枈みオフセット関数を呌び出したす r_it 倖挿倚項匏ず察応する補正関数の合蚈



r_it= s_it+ e_it






䞊蚘の補正関数の特性により、関数の非垞に重芁な特性が埗られおいるこずに泚意しおください。 r_it -それらはすでに「オフセットでステッチ」されおいたす。 ポむントのギャップを蚱容しない t_i 



r_it_i= r_ {i-1}t_i






調敎された機胜のセット r_it 望たしい倉䜍モデルの圹割を䞻匵できたす st 1぀の状況ではない堎合、すべおの時点で定矩されたす点で䞍連続倉䜍が存圚しないにもかかわらず t_i 、䞀般的な堎合のこの関数セットの導関数はただ匕き裂かれおいたす。



具䜓的には、初期芁件には普遍的な滑らかさの条件が含たれおいるため、䞀次導関数の䞍連続性である速床に関心がありたす。 st 、぀たり 速床の広範な連続性のための条件。 これを念頭に眮いお、補正機胜の芁件を拡匵する必芁がありたす e_it 調敎された関数の導関数も「ステッチ」する r_it 



r_i ^ {'}t_i= r_ {i-1} ^ {'}t_i






この方皋匏は、調敎された関数の党䜓の滑らかさの条件です。 方皋匏の䞡偎の修正された関数の定矩を代入するず、次のようになりたす。



s_i ^ {'}t_i+ e_i ^ {'}t_i= s_ {i-1} ^ {'}t_i+ e_ {i-1} ^ {'}t_i






先に修正時間が経過した埌 T 補正関数はれロ倀を取りたす。 修正関数にもう1぀の芁件を远加したす-修正時間が経過した埌、その導関数もれロ倀を取るようにしたす。



e_i ^ {'}t= 0、t \ in [t_i + T、\ infty






次に、補正時間は垞にサンプル間の間隔よりも短いず仮定するず、導関数は 私は 次のカりントダりン時の修正関数 t_ {i + 1} すでにれロになりたす。 次に、滑らかさの状態に戻るず、次のようになりたす。



s_i ^ {'}t_i+ e_i ^ {'}t_i= s_ {i-1} ^ {'}t_i+0






ここから急行 e_i ^ {'}t_i 



e_i ^ {'}t_i= s_ {i-1} ^ {'}t_i-s_i ^ {'}t_i








に泚意しおください s_i ^ {'}t_i は有限差分を䜿甚しお行われた速床の掚定倀であり、これを代入したす。



e_i ^ {'}t_i= s_ {i-1} ^ {'}t_i-v_i






右偎は、速床の倖挿誀差を衚したす。これは、前の倖挿倚項匏から取埗した速床ず「実際の」速床基準ずの差です。 これで、補正関数の境界条件をたずめるこずができたす。



\å·Š\ {\ begin {array} {lcl} e_it_i= e_i \\ e_i ^ {'}t_i= s_ {i-1} ^ {'}t_i-v_i \\ e_it_i = 0、t \ in [t_i + T、+ \ infty] \\ e_i ^ {'}t_i= 0、t \ in [t_i + T、+ \ infty] \\ \ end {array} \ right。






これらは次のような蚀葉で説明できたす-修正関数を芋぀ける必芁がありたす





゚ラヌ蚂正機胜の遞択



補正関数の単䞀の分析匏を取埗するこずに泚意しおください e_it 䞊蚘の4぀の条件を完党に満たすこずは非垞に困難です。 問題は、修正時間が経過した埌の定矩領域の䞀郚です。 T 、-数倀軞の残り党䜓で関数ずその導関数のれロ倀を達成する必芁がありたす。 タスクを簡玠化するために、補正関数の目的の分析匏のドメむンを補正間隔に枛らしたす [t_i、t_i + T 、およびその䞊限の埌に、関数の倀ずその導関数を自明にれロず芋なしたす幞い、プログラムコヌドのレベルでは、分岐の存圚によりこのような機䌚がありたす。



圢匏的には、この手法を考慮するず、区分的補正関数は補正間隔の匏であり、定数0はさらにポむントでの境界条件に埓いたす t〗_i + T補正関数自䜓もその1次導関数も壊れたせん。高階埮分の䞍連続性は私たちには興味がないので望たしい関数の滑らかさを損なうこずはありたせんs(t)、将来の補正関数のれロ「テヌル」に぀いおは蚀及せず、より䟿利な圢で境界条件を再定匏化したす。



\left\{
\begin{array}{lcl}
e_i(t_i) = e_i\\
e_i^{'}(t_i) = s_{i-1}^{'}(t_i)-v_i\\
e_i(t_i+T) = 0\\
e_i^{'}(t_i+T) = 0\\
\end{array} 
\right.






速床の倖挿の誀差を ε_i=s_{i-1}^{'}(t_i)-v_i 



\left\{
\begin{array}{lcl}
e_i(t_i) = e_i\\
e_i^{'}(t_i) = \varepsilon_i\\
e_i(t_i+T) = 0\\
e_i^{'}(t_i+T) = 0\\
\end{array} 
\right.






次に、次の分析匏を定矩する必芁がありたす e_i (t) 。プログラムの人間工孊的な芁件により、境界条件に加えお、GPSマヌカヌが「けいれん」しないように、補正関数は補正間隔で極倀ずキンクをできるだけ少なくする必芁がありたす。



これらの芁件に適合する最も単玔な関数は、倚項匏です-可胜な限り時間の最小の倚項匏ですt理論的には、たずえば、正匊も基本関数間で同様の特性を持っおいたすが、その倀の蚈算はプロセッサ時間の芳点から耇雑です。



境界条件は4぀の自明でない方皋匏のシステムであるため、補正関数の十分なパラメヌタヌ化を提䟛する倚項匏の3次は3次です。そのための分析匏を構築する堎合e_i (t)私は-thカりントダりンの瞬間から時間をずる方が䟿利です定矩ずたったく同じ方法s_i (t))で、必芁な倚項匏は次の圢匏を取りたす。



e_i (t)=C_3 〖(t-t_i)〗^3+C_2 〖(t-t_i)〗^2+C_1 (t-t_i )+C_0






この匏を境界条件のシステムに代入し、定数に関しお解く C_3,C_2,C_1 そしお C_0 次の倀を取埗したす。



\left\{
\begin{array}{lcl}
C_3 = \frac {\varepsilon_iT + 2e_i} {T^3} \\
C_2 = - \frac {2\varepsilon_iT + 2e_i} {T^3} \\
C_1 = \varepsilon_i \\
C_0 = e_i \\
\end{array} 
\right.






その結果、e_i (t)説明した方法で補正関数を決定した堎合、補正された関数は垞に滑らかなr_i (t)単䞀の倖挿関数にマヌゞされs(t)たす。s(t)かさばるので、完党な衚珟はしたせん。



泚修正時間を遞択するずき、最埌の䞍正確さは仮定に残っおいたしたT-私たちの掚論は、T垞にサンプル間の間隔よりも短いずいう条件に基づいおいたした



(\forall i \in \mathbb{N})(T<t_i-t_{i-1})






構築されたモデルの優れた機胜は、サンプル間の平均時間を超えないようs(t)に遞択するのに十分であるこずTです個々の間隔(t_i-t_{i-1})が短い堎合T、短すぎる間隔で修正する時間がなかった゚ラヌの䞀郚が1぀修正されたす以䞋から。これを行うには、倖挿誀差を通垞の倖挿関数s_i (t)ではなく、調敎されたr_i (t) 



e_i=r_{i-1} (t_i )-s_i






次の図は、s(t)実際のデヌタに基づいお構築された最終倖挿関数のグラフの䟋を瀺しおいたす。







圢匏的な問題は解決され、結果の曲線はすべおの芏定された条件を満たしたす。これでリラックスするこずは可胜ですが、珟実の䞖界の特城は、構築された理想的なシステムに特定の困難をもたらしたす。



それらのいく぀かをより詳现に怜蚎し、以䞋で行われるすべおの決定が数孊モデルの倖郚のプログラムコヌドで盎接実装されるこずを予玄したす。



数孊モデルの実際の条件ぞの適応



反察方向ぞのマヌカヌの移動の犁止



最埌のグラフでs(t)は、実際の数に応じお、ナヌザヌがルヌトに沿っお排他的に前方に移動しおも、堎合によっおは機胜が䜎䞋し始めるこずがわかりたす。これは、予枬によっお移動速床が倧幅に過倧評䟡されおいる堎合に発生したす。䞀方、実際には、車が反察方向に移動するのは、ドラむバヌが本圓にリバヌスギアを入れお戻った非垞にたれなケヌス、たたはUタヌンを完了したずいう2぀の理由だけです。



Uタヌンの堎合、亀通状況が倧幅に倉化するため、ナビゲヌションルヌトの再構築が必芁です。これは別のトピックであり、この蚘事の範囲に圓おはたりたせん。



䜍眮を倖挿した結果を䜿甚する堎合s(t)盎接、マヌカヌがルヌトの開始に向かっお移動するすべおの動きのうち、消倱する少数掟は、同じ方向の車の実際の動きに察応したす。これを螏たえお、ナヌザヌを誀解させないように、ルヌトを再構築せずにマヌカヌを完党に犁止するこずが決定されたした。



このような厳しい条件は、数孊の蚀語で説明するこずは困難ですが、プログラムコヌドで実装するこずは比范的簡単です。たず、モデル時間の離散的な性質を考慮したすt-コンピュヌタヌの機胜の特城により、いずれの堎合でも、遞択されたいく぀かの時点で倖挿の結果を受け取りたす。



その堎合、倖挿バむアスが枛少しないこずを確認するこずは難しくありたせん。取埗した新しい倀を前の倀ず比范するだけで十分であり、珟圚の倀が小さい堎合は前の倀に眮き換えたす。この手法の明らかな無瀌さにもかかわらず、倖挿関数の滑らかさに違反するこずはありたせん。滑らかな関数に沿っお埌方に移動を開始するには、最初に完党に停止する必芁があるためです。

将来的には、s(t)逆方向の移動を防ぐために数孊的に正しい倀を叀い倀に眮き換える操䜜モヌドは、匷制停止モヌドず呌ばれたす。



倖挿誀差が倧きすぎ、サンプル間の間隔が長すぎる



ある意味で定性関数を構築したずいう事実にもかかわらず、s(t)倖挿誀差は蚱容できない倀に達するこずがありたす。これらの堎合、プログラムは通垞の方法で゚ラヌを修正しようずするのをやめるべきです。䜕らかの理由で新しいオフセットカりントが長すぎお到着しない堎合、倖挿デヌタが関連しなくなる別の状況が発生したすs(t)。最埌のカりントを受信した瞬間からモデリング機胜が劇的に䜎䞋したす。予枬の詊みず悪意のある嘘の間の境界線を越えないために、通垞、モデルに䟝存するコストは3秒以内です。



簡単にするために、最初の吊定的な状況を修正䞍可胜なバむアス゚ラヌず呌び、2番目の状況を修正䞍可胜な時間゚ラヌず呌びたす。



これらのタむプの゚ラヌにはそれぞれ2぀の方法で察凊できたす。



私たちのアプリケヌションでは、スムヌズな泚意が特に现心の泚意を払われおいるため、最初の方法が遞択されたした。



長期匷制停止モヌド



匷制停止モヌドぞの移行は、GPSマヌカヌの逆方向移動を犁止するために、粟床の䜎い䜍眮デヌタの発行に関連付けられたす。特に䞍利な堎合にナヌザヌに誀解を䞎えないように、モデルには、モヌドに入る理由に関係なく、指定された期間埌にマヌカヌを最埌の実際の䜍眮に「テレポヌト」するこずで匷制停止モヌドを䞭断する機胜が远加されおいたす倖挿たたは修正䞍可胜なオフセット/時間゚ラヌの数孊的結果 。この時点で、動きの滑らかさでさえ、正確さの「残り」のために犠牲にしなければなりたせん。



結論



行われた䜜業の結果、出力デヌタの粟床ず衚瀺の芖芚的人間工孊のバランスが取れるように、ルヌトガむダンスを改善するこずができたした。特に、良奜な信号のためにGPSセンサヌから高品質のデヌタを受信する堎合、ナヌザヌは非垞に快適に感じるでしょう。



説明した倖挿システムは、ゞオロケヌションを䜿甚する他のアプリケヌションで䜿甚できたす。経路の抂念、したがっお開始点からの倉䜍が存圚しない堎合、1次元スカラヌからの数孊モデルを倚次元ベクトルに䞀般化できたす。モデル自䜓をコヌドに実装しおも、䞀般的なプログラミング蚀語では問題は発生したせん。これには単玔な算術挔算のみが必芁です。



さらなる開発パスに関しおは、蚘事の冒頭で述べたセンサヌからの「生の」䜍眮デヌタの枬定誀差に泚意する䟡倀がありたす。予枬の゚ラヌをすでに修正しようずしおいる堎合、枬定゚ラヌずの闘いは、将来の䜜業の別のレむダヌであり、困難ですが、そこからはそれほど興味深いものではありたせん。衚瀺される情報の正確性に関するこの分野での朜圚的な成功の利点を過倧評䟡するこずは困難です。



All Articles