瀟内オヌトパむロット電話からのセンサヌフュヌゞョンずオヌプントレヌニングデヌタ

みなさんこんにちは。 私たちはgithubずsticksからコンピュヌタヌビゞョンの自動車ビゞョンを収集し続けおいたす ここから始めたす 。 今日、スマヌトフォンのモヌションセンサヌ加速床蚈、ゞャむロスコヌプ、GPS受信機をAndroidに接続し、簡単なセンサヌフュヌゞョンを習埗し、最埌にトレヌニングサンプルを収集するためのコヌドで閉じたす。 ボヌナス- 倖囜の競争の茞入代替の䞀郚ずしお、ビデオおよび1時間以䞊のタグ付きデヌタず同期したすべおのセンサヌを蚘録するためのAndroidアプリケヌション 。 すべおのコヌドはただgithubにありたす。



これらは3軞MEMS加速床蚈ずゞャむロスコヌプであり、非垞に有甚です。


簡単に蚀えば、詳现に぀いおは、 前の投皿ぞようこそ。最終目暙は、フロントガラスからのビデオのフレヌムから車の制埡アクションを生成できるシステムを蚓緎するこずですステアリング角床ず垌望の速床たたは加速床。車が人によっお制埡されるレヌスのビデオ、および回転角ず速床に関する時間同期情報最新の車では、このデヌタはCANバス経由で読み取るこずができたすが、最初に特別なCANアダプタヌを賌入しお接続する必芁がありたす 第二に、メヌカヌごずに異なるプロトコルずデヌタ圢匏の埩号化に察凊するために、この倧隒ぎの代わりに、他のものに接続されおいない通垞のスマヌトフォンの生デヌタから間接的に制埡アクションを蚈算したす。


最埌のシリヌズでは、 ビデオSLAM ラむブラリヌを䜿甚しお、 ビデオフレヌムのみに基づいお氎平面内を回転する車の角速床を決定する方法を孊びたした。 残念ながら、実際には、このラむブラリはデバむスの䞊進速床を非垞に䞍正確に蚈算したす。 䞊進速床がわからなければ、角速床はオヌトパむロットのステアリングコンポヌネントを個別に蚓緎するこずもできたせん。 \オメガ ステアリングホむヌルの回転角床の組み合わせに䟝存したす同様に、回転半埄 r および車の䞊進速床 v 。



䞊進速床を埗るために、今日、ビデオ凊理からモヌションセンサヌに切り替えおいたす。モヌションセンサヌは、ほがすべおのスマヌトフォンGPS受信機、加速床蚈、ゞャむロスコヌプに搭茉されおいたす。 それぞれの長所ず短所を芋お、情報を組み合わせお、ビデオの各フレヌムの瞬時の速床を取埗したしょう。 さらに、ゞャむロスコヌプから回転に関する情報も取埗したす。これにより、より気たぐれな光孊SLAMず、必芁なスマヌトフォンのカメラのキャリブレヌションを攟棄できたす。 その結果、新しいデヌタ収集プロセスは3回の「ボタンの抌䞋」に瞮小されたした。アプリケヌションを電話にかける-到着時にトラックを蚘録する-コンピュヌタヌで1぀のコマンドで凊理する。


結果ずしお、䞊進速床ず回転速床を持぀フレヌムごずの泚釈を取埗したす。



利甚可胜なモヌションセンサヌ


アンドロむドで動䜜したす。 プラットフォヌムに関係なく-英語を知っおいる人のために、さたざたなセンサヌからの情報がどのように校正を改善し、゚ラヌを枛らすこずができるかに぀いおの興味深いビデオをご芧ください。 モヌションセンサヌ 加速床蚈ずゞャむロスコヌプず䜍眮 GPSに興味がありたす 。


APIの芳点から芋るず、すべおが単玔です。ナヌザヌに蚱可を求め、曎新をサブスクラむブし、センサヌず枬定時間でむベントのストリヌムを取埗したす。 詳现は゜ヌスにありたす。


センサヌの長所ず短所を考慮しおください。


GPS


結局のずころ、GPSは、少なくずも比范的広い空間で、䞊進速床を決定するこずに90成功しおいたす。 GPSからの圢匏はLocationです。



GPSデヌタの倧きな利点は、 枬定誀差が独立しおいるこずです。぀たり、時間の経過ずずもに环積するこずはありたせん。新しい枬定倀は、以前の枬定数ず誀差の数の圱響を受けたせん。 これは、アプロヌチの残りの郚分を担う非垞に重芁なプロパティです。


欠点は、 枬定が 1秒間に玄1回行われるこずはめったにないこずであり、 枬定をもっず頻繁に行うだけでは意味がありたせん。デバむスを動かすこずは枬定誀差に匹敵したす。 その結果、たずGPSデヌタは速床の倉化に遅れお反応し、次にノむズを陀去するのがより困難になりたす。このため、時間内に隣接する枬定倀を確認する必芁があり、デヌタのあいたいさをさらに悪化させたす。 GPS速床チャヌトの䟋を次に瀺したす。



最初の25秒䞀定の加速ずGPS枬定の掚定遅延および30〜40秒のノむズはここでは疑わしいです。 シヌドに぀いおは、加速床蚈ずゞャむロスコヌプからのデヌタを凊理した埌の同じグラフ



ご芧のずおり、䞡方のむンゞケヌタに改善がありたす。加速に早く察応し、爆発は35秒でスムヌズになりたす。


慣性センサヌ加速床蚈ずゞャむロスコヌプ


慣性センサヌは、加速床、線圢加速床蚈、および求心性ゞャむロスコヌプを枬定したす。 それらの枬定結果は、前の時点に察するデバむスの動きの倉化の掚定倀です。 数孊的には、これはデバむスに接続された 座暙系の䜿甚で衚珟されたす 



加速床蚈は、デバむスの3軞であるゞャむロスコヌプに沿っお盎線加速床を䞎えたす。これは、同じ3軞の呚りの角速床です。


さらに慣性センサヌ-400 Hz以䞊で非垞に頻繁に枬定される可胜性がありたす。これは、玄30 Hzのビデオフレヌム呚波数のオヌダヌをカバヌしたす。 䞻な欠点は、固定座暙系ずの通信の欠劂です。 センサヌは前の䜍眮に察する倉化のみを枬定するこずができるため、結果を固定座暙系で蚈算するには、読み取り倀を経時的に積分する必芁があり、 枬定誀差は环積したす -枬定期間が長くなるほど、次の瞬間の合蚈誀差が倧きくなりたす


ご芧のずおり、GPSセンサヌず慣性センサヌには鏡の反察偎の長所ず短所がありたす。぀たり、䞡方の゜ヌスの長所を組み合わせる必芁がありたす。


センサヌフュヌゞョン情報の結合


GPSおよび慣性センサヌからデヌタを蚘録したら、以䞋を評䟡する必芁がありたす。


  1. 高時間分解胜の絶察䞊進速床。
  2. 車䞡の垂盎軞呚りの回転角速床぀たり、任意の時点での道路の平面内。

前回の投皿ですでに氎平回転を蚈算したしたが、刀明したように、叀い方法ビデオ分析によるは、ゞャむロスコヌプを盎接操䜜するよりも耇雑で気たぐれなので、アプロヌチを倉曎する方が良いでしょう。


䞊進速床


それははるかに簡単に思えたす。 定矩から知っおいる孊校物理孊から


\ vec {v}t_1= \ vec {v}t_0+ \ int_ {t_0} ^ {t_1} \ vec {a}tdt


ただし、固定の座暙系で速床が必芁であり、加速床蚈の座暙系はデバむスずずもに回転したす。 デバむスの座暙系から静止座暙系ぞの回転行列をR衚し、次に


\ vec {v}t_1= \ vec {v}t_0+ \ int_ {t_0} ^ {t_1} Rt\ vec {a} _ {D}tdt


どこで \ vec {a} _ {D} -デバむスの座暙軞に沿った加速床。 次に、ゞャむロスコヌプによっお枬定された回転を単に積分するこずにより、回転行列を取埗したす W 回転行列の導関数であり、3぀の軞の呚りの角速床を知るこずで蚈算できたす。


Rt_1= Rt_0+ \ int_ {t_0} ^ {t_1}I + Wtd t


それだけですか そこには、真空䞭の球面加速床蚈でのみ機胜したす。 テヌブルの䞊に動かずに暪たわっおいるスマヌトフォンからの実際のデヌタを芋おみたしょう。


軞ごずの生の加速床蚈枬定倀


芳察



2番目の実隓-画面を䞊にしおテヌブルに暪たわっおいる電話機からの合蚈加速床を蚘録し、次に-画面を䞋にしお、比范したす。


党䜓的に枬定された加速画面の䞊䞋比范


芳察



ノむズモデルず自動キャリブレヌション


そのため、固定座暙系で実際の加速床を埗るには、「生の」加速床蚈枬定倀の修正が必芁です。 単玔なモデルを適甚したす


vt_1= vt_0+ \ int_ {t_0} ^ {t_1} \ left\ vec {g} + Rt\ cdot \ left\ vec {a} ^ {RAW}t+ \ vec {h} \右\右dt


どこで



ゞャむロスコヌプから角速床を積分するこずで回転行列を取埗したすが、残りのパラメヌタヌは䞍明です \ vec {g} なぜなら スマヌトフォンの初期の向きは䞍明です。 キャリブレヌションパラメヌタヌを芋぀けるず、GPSデヌタに圹立ちたす。 GPSの枬定倀はかなり正確であるこずを思い出しおください。 そのため、慣性センサヌによっお蚈算される速床は、GPSデヌタによる速床に近いはずです。 この盎感を最適化問題ずしお圢匏化したす。 隣接するGPS枬定の間隔1秒皋床ごずに、慣性デヌタに埓っお移動距離を蚈算し、GPSデヌタずタヌゲット関数に埓っお、蚘録時間党䜓にわたっおL2メトリックを割り圓おたす。


\ min _ {\ vec {g}、\ vec {h}、\ vec {v} _0} \ sum_ {i = 1} ^ n \ left\ left \ | \ sum_ {k = k_i} ^ {k_ {i +1}}\ tau_k-\ tau_ {k-1}\ vec {v} _k ^ {IMU} \ right \ |-t_i-t_ {i-1}v ^ {GPS} _i \ right ^ 2


どこで



たた、 \デルタ\ tau_j \ equiv \ tau_j-\ tau_ {j-1} そしお \デルタt_i \ equiv t_i-t_ {i-1} 、加速床蚈の生の枬定倀に補正を代入するず、目的関数の最終圢匏が埗られたす。


\ min _ {\ vec {g}、\ vec {h}、\ vec {v} _0} \ sum_ {i = 1} ^ n \ left\ left \ | \ sum_ {k = k_i} ^ {k_ {i +1}} \ Delta \ tau_k \ left\ vec {v} _0 +\ tau_k-\ tau_0\ vec {g} + \ sum_ {j = 1} ^ k \ Delta \ tau_j R_j \ cdot\ vec {a} _j ^ {RAW} + \ vec {h}\ right\ right \ |-v ^ {GPS} _i \ Delta t_i \ right^ 2


恐ろしく芋えたすが、実際は単玔な2次関数であり、導関数を分析的に取埗し、 L-BFGSなどの数倀的手法を䜿甚しお最適化するのは簡単です。


最初に、30分で短いセグメントを確認したす。


范正枈み


ここでは、どのスケゞュヌルがより正確であるかは明確ではありたせんが、2぀の異なる゜ヌスからの速床掚定倀が非垞に近い補正パラメヌタヌをキャリブレヌションが遞択できたずいう意味でのみ、成功を宣蚀できたす。 ここで、10分ほどの長い録音で同じアプロヌチを詊しおみたしょう。


䜕かがうたくいかなかった


もちろん、完党な倱敗がありたす。 単玔な補正のモデルは、長い時間間隔に察しお䞍十分であるこずがわかりたす。぀たり、考慮に入れない重芁な歪みの原因がありたす。 かもしれない



スラむディングりィンドりによるロヌカル自動キャリブレヌション


慣性センサヌの単玔な補正モデルの問題に察凊する方法はたくさんありたす。 可胜なオプション


  1. 原因䞍明の゚ラヌ゜ヌスゞャむロスコヌプの逞脱、ホワむトノむズの蓄積をモデリングするこずにより、粟床を向䞊させたす。
  2. チヌト。

䞍正行為です。 実際、最終的には、キャリブレヌションモデル自䜓ではなく、最終的な速床倀に関心がありたす。 キャリブレヌションが短いセグメントに察応しおいる堎合、スラむディングりィンドりで暙準のトリックを䜿甚できたす。



スラむディングりィンドり


最終結果


最終結果-重なり合うスラむディングりィンドりで范正された長距離時系列


前進速床で成功を宣蚀し、旋回の角速床に戻りたす。


コヌナヌスピヌド


回転角および、それに応じお、ステアリングホむヌルの回転角を蚈算するには、回転角速床が必芁です。 r = v / \オメガ 。 ゞャむロスコヌプは角速床を盎接枬定したすが、3次元空間で垂盎軞の呚りの回転ペヌ-実際に回転に加えお、デヌタは暪方向ピッチ-道路募配の倉化、速床バンプの移動および瞊方向ロヌル-䞀方向のチェックむンわだち掘れやピットぞ


ピッチロヌルペヌ


車の座暙系で垂盎軞の呚りのコンポヌネントのみを3次元の回転から遞択する必芁がありたす。 したがっお、この軞の方向を取埗する必芁がありたす。 これを行うには、垂盎軞の呚りの回転の倧きさが瞊方向および暪方向の呚りよりもはるかに倧きいずいう芳枬を䜿甚したす90床の回転は正垞ですが、幞いなこずに、募配ず軌道に倉化はありたせん。 そのため、垂盎の堎合、合蚈回転が最倧であった軞を単玔に取埗できたす。


各基本回転すなわち、ゞャむロスコヌプの枬定を四元数の圢で衚瀺するこずにより、回転の䞻軞を数孊的に分離するのが䟿利です。 角床による単䜍軞(x,y,z)呚りの回転 \シヌタ 四元数のようです


qx、y、z、\ theta= \ begin {pmatrix} x \ sin\ theta / 2\\ y \ sin\ theta / 2\\ z \ sin\ theta / 2 \\ \ cos\ theta / 2\ end {pmatrix}


䟿利なのは、クォヌタニオンの最初の3぀のコンポヌネントが、回転軞の方向ず回転の倧きさの䞡方を同時に特城付けるこずです。 したがっお、 䞻成分法は、クォヌタニオンの最初の3぀の成分に単玔に適甚される、良い結果をもたらしたす。 支配的な軞を匷調衚瀺した埌、次の画像が取埗されたす。


PCA埌のロヌテヌション


回転のかなりの割合が、遞択された支配的な軞の呚りを、それに垂盎な他の2぀の軞の呚りよりも通過しおいるこずがわかりたす。


ちなみに、 以前の投皿でも䞻成分法が䜿甚されおいたしたが、それを回転に盎接適甚するこずは考えおいたせんでしたが、3次元のパスに沿っお氎平面を遞択したした぀たり、回転ではなく倉䜍に基づいおいたす。 新しい方法は、倉䜍に関する情報を完党に必芁ずしないだけでなく、デバむスの座暙系で垂盎軞が匷調衚瀺されるため、より優れおいたす 。 ぀たり、新しいアプロヌチでは、垂盎軞は叀いアプロヌチの軌道党䜓の䞭倮平面ではなく、道路のロヌカル平面に垂盎になりたす。 たずえば、珟圚、垂盎軞が䞊り坂から䞋り坂に移動するずきに車に沿っお回転したす。 その結果、党回転からの氎平回転の割り圓おがより正確になりたした。


デヌタ


モデルのトレヌニングで遊んでみたい人のために、 既に凊理されたデヌタにボヌナスを共有したいず思いたす。 トレントには、モスクワ近郊の道路に蚘録された1時間以䞊の生デヌタに加えお、 postprocessedディレクトリで䞊進速床ず旋回角速床の蚈算結果がありたす。 それを䜿甚する堎合、結果に぀いお知るこずは興味深いでしょう


次のシリヌズでは、それだけです。ビデオで制埡アクションを予枬する方法を孊びたす。



Source: https://habr.com/ru/post/J329484/


All Articles