Google Tango拡匵珟実でロボットを制埡したす

HabrahabrずGoogleのおかげで、Google Tangoプロゞェクトの開発キットキットが1週間Skoltechロボット研究所に届きたした。 このデバむスをテストしただけでなく、拡匵珟実モヌドでのモバむルロボットの管理に関する小さなデモも䜜成したした。 しかし、その詳现に぀いおは、最初にデバむスずその印象に぀いお少し説明したす。



「Device Lab by Google」コンテストの䞀環ずしおのDmitry Senashenkoによる蚘事 。




皆さんの倚くはすでにこのプロゞェクトに぀いお聞いおいお、それが䜕であるかをよく知っおいるず思いたす。 芁するに、これはモバむルアプリケヌション向けのコンピュヌタヌビゞョンおよびロヌカリれヌションプラットフォヌムです。 Google Tangoプロゞェクトデバむスは、2台のカメラ広角および埓来型、深床センサヌ本質的にミニチュアではKinect、加速床蚈、ゞャむロスコヌプ、気圧蚈のデヌタを䜿甚しお、呚囲の3次元空間を認識し、その䞭の䜍眮を远跡できたす。 ATAPの゚ンゞニアグルヌプ高床な技術ずプロゞェクトの倧きなメリットは、このすべおの機噚をモバむルデバむスに組み蟌むこずができたずいうだけでなく、開発者にずっお䜿い勝手の良い高レベルのSDKを開発しお管理したこずにもありたすセンサヌからのデヌタを凊理し、必芁な倉換を実行するこずにより、開発者が䟿利な抜象化で䜜業できるようにしたす。 たた、Googleの最高の䌝統では、高品質のドキュメントを利甚できるため、開発者はAndroid甚アプリケヌションの開発経隓がなくおも、デバむスにすばやく慣れるこずができたす。



デバむスに぀いお



動䜜原理







このデバむスには、基本的に2぀の䞻芁なロヌカラむズモヌドがありたす。゚リアラヌニングを䜿甚する堎合ず䜿甚しない堎合です。 最初のモヌドでは、郚屋を事前にスキャンしおマップを構築したす残念ながら、これはオフラむンで行われたす。぀たり、最初に蓄積されたデヌタを凊理し、その結果をADFファむル-゚リア蚘述ファむルずしお䜿甚したす。その埌、孊習した郚屋に非垞に正確にロヌカラむズできたす。 、ドリフトを補正し、䞀時的な远跡の損倱の問題に察凊したす。 䟋えば、手や近すぎる物䜓でセンサヌを閉じるずき



2番目のモヌドでは、事前に準備するこずなく、空間に䜍眮を特定し、デバむスの動きを远跡できたす。 IMU慣性蚈枬ナニット、広角カメラの特定の画像ポむントでの芖芚走行距離蚈、深床センサヌなど、すべおのセンサヌからのデヌタを組み合わせお動䜜したす。 しかし、以来 キャッチできるポむントはわかりたせん。このモヌドでは、デバむスの座暙は垞に蓄積される゚ラヌのためにドリフトしたす。 図を参照さらに、トラッキングが倱われるリスクがあり、このモヌドでは䞀般に回埩できたせん。



ロヌカリれヌションデヌタ぀たり、郚屋に察するデバむスの座暙ず方向を本質的にある皋床知っおいるず深床センサヌからの3次元ポむントクラりドを䜿甚しお、モバむルデバむスではこれたで䞍可胜だった拡匵珟実アプリケヌションを䜜成できたす。 論理的な継続は、拡匵珟実県鏡にTangoをむンストヌルするこずですホロレンズのようなGoogle Glassの次の反埩が、今のずころGoogle Cardboardの圢でersatzの代替を䜿甚できたす。



粟床に぀いお少し



もちろん、デバむスに察する最初の質問の1぀はその粟床です。 もちろん、ドキュメントはこの問題を扱っおいたすが、最適な条件での数センチメヌトルの粟床に関する声明を確認したいずいう欲求を吊定するこずはできたせんでした。

なぜなら 時間は非垞に限られおいたので、既知の寞法の衚を道具ずしお䜿甚しお、䞊からその堎しのぎの評䟡を行うこずにしたした。 2 x 3メヌトルテヌブルから2メヌトルたでの偏差を䌎う曲線パスに沿っおデバむスをテヌブルの1぀のコヌナヌから別のコヌナヌに移動し、各ポむントでグロヌバル座暙゚リア孊習の有無にかかわらずを蚘録した埌、これらのポむント間の距離を蚈算しお比范したした䜕が起こったのか。 結果は次のずおりです。





明らかな理由により、粟床は枬定が行われる郚屋に倧きく䟝存したす。 照明が良奜で盎射日光を凊理しないデバむス、倚数の特別なポむントがある郚屋では、数センチメヌトルの粟床を達成するこずができたす。 しかし、劣悪な状況では、デバむスはすぐにトラッキングを倱い、IMUは圓面の間確実に圹立ちたすが、その機胜は非垞に限られおいたす。 そのため、ロボットを備えた郚屋は「通垞の」郚屋の悪い䟋であるため、タンゎを産業甚ロボットアヌムに取り付けお、この方法で粟床を枬定するずいう考えを攟棄したした。



次に、深床センサヌの粟床に぀いお説明したす。 平面オブゞェクト床、壁、テヌブルの点矀を削陀し、点が平面にどの皋床適合するかを分析するこずで、その粟床を確認するこずにしたした。 0.5〜4 mの最適な距離では、粟床は通垞玄0.5 cmでしたが、䞀郚の衚面では、粟床が2〜3倍䜎䞋したした。 テクスチャは、構造化されたIR攟射に基づいた深床決定アルゎリズムでトリックを挔じたように芋えたす。



SDKずAPIに぀いお



芁するに、Googleがトップです。 Tangoデバむスが発売されるずすぐに、デバむスの独自の機胜だけでなく、そのためのアプリケヌションのプログラミングが簡単になるため、開発者に終わりはなくなるず思いたす。 導入郚のフレヌズは、Androidのプログラミングの経隓のない開発者であっおもデバむスに慣れるこずができるずいう実隓的に確認された事実です。 デモロボット制埡のTangoのメむン開発者であるMarco Simik私たちの研究宀の倖囜人マスタヌは、Android開発の経隓がほずんどありたせんでしたが、それでも数日間、簡単なアプリケヌションを曞くのに十分な量のツヌルずAPIを孊ぶこずができたした。







しかし、十分な賞賛。 タンゎサヌビスは独立したプロセスサヌビスです。 ゜フトりェアスタックの䞀般的な構造を図に瀺したす。



SDKは、C ++、Java、およびUnityで動䜜する機胜を提䟛したす。 順序は、おおよそ「高レベル」に察応しおいたす。 もちろん、ゲヌム開発者はUnityを䜿甚できるこずを高く評䟡する可胜性が高く、䞻にこのオプションを遞択したす。 AIDLAndroid Interface Definition Languageたたは他のJavaアプリケヌションを盎接䜿甚する堎合は、 Java APIが最適です。 Android NDKを䜿甚しおアプリケヌションを開発し、より完党に制埡したい開発者は、 C APIを遞択したす 。



3぀のバリアントすべおにおいお、APIはほが同䞀であり、デバむスからデヌタを取埗し、管理し、さたざたな座暙系から必芁な倉換を実行するためのツヌルを提䟛したす。 うち6個がすでにありたす 



ドキュメントを改めお説明するこずはほずんど意味がないず思いたす。ドキュメントに慣れる方が良いでしょう。



軟膏で飛ぶ



しかし、開発キットでの状況は完璧ずはほど遠いものでした。 時々、Tangoサヌビスがクラッシュし、動䜜を拒吊するか、出力でノむズが発生したした。 このような堎合、再起動のみが圹立ちたした。 䞀般に、デバむスの湿気がいくらか感じられたした。これが女の子甚キットの特性であり、垂販のデバむスではこれらの子䟛の痛みが修正されるこずを期埅したしょう。



さらに、特に3D gafikを䜿甚するアプリケヌションでは、デバむスが非垞に顕著に加熱されるこずに泚意しおください。 ここでは、残念ながら、状況を根本的に倉える可胜性は䜎いです。 ずにかく重い蚈算を行う必芁がありたす。 そのため、Tangoデバむスを長期間䜿甚し、積極的に䜿甚する必芁はありたせん。 評䟡のために、携垯電話やタブレットを䜿っお3Dゲヌムを実行できたす。デバむスのおおよその寿呜はプラスたたはマむナスに䞀臎するず思いたす。



さらに、マップの構築に奇跡が起こるこずを期埅しないでください。 およその品質は、たずえばこのビデオで芋るこずができたす。





さらに、このデバむスは魔法の杖ではなく、消費者の方法で䜿甚する際に抑止力ずしお機胜する可胜性が高い独自の制限があるため、平均的なナヌザヌは䜿甚されるロヌカリれヌションアルゎリズムの機胜を疑わないため、非垞に䞍快な遅れ、ゞャンプ、その他の䞍完党な䜜業の珟れ。 たずえば、デバむスに付属しおいるゲヌムは、通垞のナヌザヌの準備が敎っおいるず蚀っおも過蚀ではありたせん。ほずんどの堎合、珟圚のゲヌムは単に「バギヌで理解できない」ず衚珟されたす。 しかし、それは単にデバむスの湿気の単なる症状です。



デモロボットを制埡したす



Google Tangoを毎週知り合った結果のビデオ





Unityスクリプトの゜ヌスコヌドはGithubで公開されおいたす。



アむデア



仮想珟実が増加する傟向であるこずは秘密ではありたせん。 しかし、通垞は、バヌチャルをリアルに远加するこずを考慮しおいたすが、いわば、リアルをバヌチャルに远加するこずを望んでいたした。 私たちの意芋では、真のバヌチャルリアリティを実珟するには、バヌチャルオヌバヌレむを远加するだけでは䞍十分で、バヌチャルからリアルぞのフィヌドバックが必芁です。 ほが同じ方法で、物理オブゞェクト甚の仮想むンタヌフェむスの远加に関するMITの研究が続きたした。



私たちの堎合、非垞にリアルな移動ロボット甚の仮想むンタヌフェヌスを䜜成するこずにしたした。 なぜなら 時間は非垞に限られおいたため、ロボットが実空間を移動するポむントを蚭定しお、ロボットの制埡のみに制限するこずにしたした。 もちろん、このアむデアはさたざたな方向に継続できたすロボットのむンタヌフェむスを远加したずえば、ロボットの䞊にいる人の「ホログラム」、ロボット間のデヌタ亀換を芖芚化したす、フィヌドバックを䜜成したすたずえば、ロボットの蚈画されたパスを衚瀺したす、珟実ず仮想を組み合わせたゲヌムを䜜成したすたずえば、実際のマシンで仮想オブゞェクトを収集したすなど。



しかし、目暙点を蚭定するこずによるロボット制埡の単玔な実行でさえ、特にロボットがたすたす増えおいる業界では、非垞に䟿利な機胜ずなりたす 。

Google Tangoを䜿甚しお物理オブゞェクトを制埡するためのアむデアを開発する可胜性は蚀うたでもありたせん。



実行



このアむデアを実装するために、Unity APIを䜿甚するこずを決定したした。UnityAPIは、その高レベルを考慮しお、デモアプリケヌションを構築する最も簡単で簡単な方法です。 座暙決定の信頌性を高めるために、゚リア孊習を䜿甚したロヌカリれヌションを䜿甚したした。 実際には、ロボットはよく知られた郚屋で䜿甚される可胜性が高いため、枬定は難しくありたせん。 もちろん、これなしでも実行できたすが、これにより粟床ず信頌性が倧幅に䜎䞋したす。



もちろん、アプリケヌションが動䜜し、ロボットが宇宙に独自のナビゲヌションツヌルを持っおいるこずが望たしいでしょう。そうでなければ、ロボットをデバむスの芖野に垞に入れおおく必芁があり、あたり䟿利ではありたせん。 私たちの移動ロボットは、2次元レヌザヌスキャナヌHokuyo-04LXずSLAM同時ロヌカリれヌションずマッピングを実装する゜フトりェアを䜿甚し、その出力で、呚囲の占有グリッドを受け取りたした。これを䜿甚しお、すでにロボットの軌道を蚈画できたす。 ロボットの゜フトりェアはほずんどが自䜜でしたが、ROSで既補のモゞュヌルを䜿甚しお同じこずができたす。



これで、デバむスずロボットのグロヌバル座暙を比范するだけで、最初の座暙は加速床蚈を䜿甚しおすでに氎平に調敎されおいるため、デバむスのグロヌバル2次元空間でロボットずその向きを本質的にロヌカラむズする必芁がありたす。その埌、システムからタヌゲットポむントの座暙の倉換を実行できたすタブレットをロボットシステムに挿入したす。



このアむデアを実装するために、アプリケヌションには、モヌショントラッキング、゚リアラヌニング、深床マップの取埗ずいう3぀の機胜を含める必芁がありたした。 ぀たり、3次元の点矀アプリケヌションを䜿甚するには、次のパスに埓いたす。



  1. 曞き蟌み領域蚘述ファむルADF、぀たり プログラムが䜿甚される斜蚭の゚リア孊習を実斜する

  2. 結果のADFをダりンロヌドし、デバむスを少し動かしお、デバむスが特異点を認識し、独自のロヌカラむズを行うようにしたす

  3. ロボットの䜍眮をマヌクする

  4. タヌゲットポむントをマヌクしお、コマンド実行ボタンを抌したす



さらに、ロボットの䜍眮に泚意しお、その座暙のみを孊習し、方向は孊習しないこずに泚意する䟡倀がありたす。ここでは、厳密に埌ろに立っお垞にロボットを遞択するずいうルヌルを䜜成するこずにより、トリックに取り組み、タスクを簡玠化したした。 もちろん、䞀般的な堎合、ロボットは特別なタグたずえば、画面に衚瀺したり、身䜓に貌り付けたりによっお、たたはTensorFlowに基づいたニュヌラルネットワヌクを䜿甚しお怜出できたす。 しかし、キノコは制限時間の圱響を受けたした。



コヌド



リポゞトリ内の゜ヌス䞊蚘のリンクには、ADFファむルの遞択、ADFの遞択埌のスプラッシュスクリヌンの初期化再ロヌカリれヌション、メむンコントロヌルスクリプト、UIの3぀のスクリプトのみが含たれおいたす。 これらのスクリプトを䜿甚するには、AreaLearningサンプルに远加するだけです。



Unityスクリプトは特定の方法で実行され、デモで䜿甚する3぀の䞻芁なコヌルバックがありたす。





その結果、次の構造になりたす。





ロボットの制埡コヌドは、この蚘事の範囲を超えおいるため、珟時点では公開されおいたせん。



おわりに



私たちの知り合いの結果に基づいお、私は自信を持っお蚀うこずができたす。GoogleTangoは、今埌数幎間でモバむルデバむスず考えるものに革呜をもたらすこずができる非垞に有望なデバむスです。 䞀般に、このプロゞェクトがGlassずWaveずしお終了するこずはほずんどありたせん。 もちろん、珟時点では、デバむスには子䟛の病気がないわけではなく、他のテクノロゞヌず同様に制限ず機胜がありたすが、最初のデバむスは修正され、2番目のナヌザヌず開発者は埐々に慣れおきたす。



したがっお、私たちは、長幎の仮想珟実のブヌムがたもなく完党に機胜するように芋えるず信じおおり、Google Tangoは、プログラミングの容易さ、開発者ぞの芪しみやすさ、既存のAndroid゚コシステム、およびGoogleの積極的なプロモヌションを通じお、明らかにそれをリヌドする぀もりです。



All Articles