サヌビスロボットの蚭蚈。 問題ステヌトメント、゜リュヌションアヌキテクチャ

Habrの志を同じくする人々のチヌム あなたも参加できたす ず䞀緒 に、ゎルフ緎習堎でゎルフボヌルを収集するロボットを開発しおいたす 。







Vladimir Goncharov Shadow_ruは、芁件の収集、䜜業のタスクの定匏化、アヌキテクチャの開発、゜フトりェアを実行するためのプロトタむプの䜜成に぀いお語っおいたす。







プロゞェクトは、芁件の収集、䞀般化、およびその埌のサブタスクの分解から始たりたした。 ロボットのタスクは䞀芋単玔ですが、蚈画段階での゚ラヌは䜜業の結果を倧きく損ない、垞にすぐに衚瀺されるずは限らないため、この段階をスキップするこずはどこにもありたせん。



芁件を芁玄するず、他のチヌムメンバヌずのコミュニケヌションが簡単になりたす。問題に察する共通の理解が生たれ、頭の䞭で各ロボットが発生しなくなる状況が発生したす。 たた、新しいメンバヌがチヌムに入ったずきに、同様のドキュメントを読むだけで十分であるため、゚ントリヌフェヌズの時間が短瞮されたす。



芁件の収集ず䞀般化には垞にバランスがありたす-もっず詳しく説明したいのですが、もしあなたが䜕癟もの関連する段萜を扱うこずに慣れおいる匁護士でなければ-これは䞀般的なビゞョンの問題を解決したせん。 もちろん、異なるチヌムメンバヌや倖郚の顧客や請負業者に察しお芁件のいく぀かのスラむスを䜜成する堎合、適切なアプロヌチがありたす。 しかし、今のずころ、これは明らかに䞍芁です。 芁件が倉曎されるたびに、そのようなスラむスの曎新に倚倧な時間を費やすこずになり、スタヌトアップの生産性にあたり圱響したせん。



私自身は、機胜芁件ず非機胜芁件に分けお、すべおを1぀のA4ペヌゞにたずめるこずにしたした。 最初のバヌゞョンは次のようになりたした。



フェヌズ1.問題のステヌトメント



課題困難な気候条件でボヌルを収集するには、トレヌニングゎルフコヌスの最倧限の継続的な迂回が必芁です。



問題 WGS-84衚蚘のポむントの座暙で境界線によっお定矩された空間を回避するために、巡回ミッションを実行するには、無人地䞊車䞡 UGV が必芁です。



ミッションには次の操䜜を含める必芁がありたす。



  1. 既知のホヌムポゞションからの通垞のスタヌト
  2. 事前に未知の䜍眮からの緊急スタヌトWD操䜜、電源保護などの埌のスタヌト
  3. 1぀たたは耇数のレヌスで、スペヌスの少なくずも98のカバレッゞを持぀゚リアをバむパスしたす15分埌にホッパヌを満たした埌に再びフィヌルドをバむパスし始める必芁はありたせん
  4. ホヌムポゞションに戻り、ホッパヌを満たし、バッテリヌを消耗させ、迂回路を終了したす
  5. 発射台でレヌスをしおボヌルをリセットし、バッテリヌを充電したす


アルゎリズムの簡略版







さらに、UGVは次の芁件を満たす必芁がありたす。



  1. 指定された境界の呚りを運転するずき、指定された境界を離れないでください
  2. ホヌム䜍眮は、指定された境界の倖偎にある堎合がありたす。
  3. バッテリヌ消費を監芖し、消費電力に基づいお返品を蚈画したす。 満杯のホッパヌを移動するには、空のホッパヌよりも倚くのバッテリヌ電力が必芁です。
  4. 平面䞊の座暙、6぀の回転軞の倀、テレメトリの信号レベル、倖郚センサヌなどのテレメトリログを保存したす。
  5. 粗い座暙を取埗するためのGPS、平面䞊の座暙の怜蚌ず修正のためのIMU、マヌカヌによる正確な䜍眮決めのための光孊的な3぀の䜍眮決めシステムを䜿甚したす。
  6. 2぀のWatch Dogシステム゜フトりェアずハ​​ヌドりェアがありたす。 ゜フトりェア怜蚌ステヌタス
  7. ミッションパラメヌタが指定されたパラメヌタ座暙、事故、停電、機噚の故障を超えた堎合に䜿甚される、別の電源を備えた長距離の緊急通信チャネルを備えおいる
  8. 圚宅䞭にミッション蚭定を倉曎できる
  9. 芖聎芚情報を䌝送するための䜎速テレメトリず高速の2぀の通信チャネルを持぀こず。 高速は、テレメトリコマンドによっお有効化/無効化できる必芁がありたす。








これらの芁件に基づいお、次の゜リュヌションアヌキテクチャが遞択されたした。



ロボット耇合䜓の構造には、1぀のコントロヌルセンタヌ地䞊局制埡-以䞋GSCが含たれたす。



ナヌザヌは次のこずができたす。





GSC゜フトりェアはゎルフロボットの動䜜を蚈画する必芁がありたすが、ロボット自䜓は非垞にシンプルでなければなりたせん。 もちろん、゜リュヌションはそれほど柔軟ではありたせんが、䞀貫性のある゜リュヌションずメッシュネットワヌクは、短時間で解決できるものではなく、安䟡でもありたせん。 加えお-これは兞型的なアプロヌチであり、したがっおよく知られた問題です。 1぀以䞊のゎルフロボットゎルフロヌバヌ-以䞋GRず呌びたす。



以䞋の兞型的なアクションを実行したす。





なぜなら 地䞊ステヌションは1぀でも構いたせんが、GRが倚数ありたす。ボヌルホッパヌの充填は緊急事態です。 これにより、2぀の問題が同時に解決されたす。GSCは、ロボットがステヌションに行き、倚くの堎合バックアップチャネルをテストしたこずを高い確実性で認識しおいたす。 たた、ミッション䞭にボヌルの充填が行われるべきであるず想定されおおり、そうでない堎合は、GSCがどこかで蚈画を間違えたため、修正する必芁がありたす。 盎芳的には、ロボットをきれいなフィヌルドで解攟したいので、ボヌルを集めたら戻りたす。 しかし、ここで経枈が始たりたす。1〜2人が参加しおいる堎合は、ロボットが駅に立ち、ボヌルがすでに蓄積されたずきに動き始める方が良いでしょう。 少ないリ゜ヌスず゚ネルギヌ消費。



1぀たたは耇数の地䞊局地䞊局-以䞋GS。





耇合䜓党䜓のスキヌムは次のずおりです。









2番目のフェヌズは、この耇合䜓党䜓のリスクず考えられる問題の評䟡です。



良いこずには、リスクずその評䟡の衚を提䟛する必芁がありたすが、3぀のA4シヌトはあくびを匕き起こすだけです。 面癜いスクむヌズだけをあげたす。



すべおの自埋クロヌルロヌバヌの䞻な問題は、正確な䜍眮を取埗するタスクです。 さらに、䜍眮は本圓に正確でなければなりたせん-できれば10〜15 cm以内この問題は小さなモバむルプラットフォヌムでは実際に解決できないため、安䟡で倧芏暡な蟲業/茞送/軍事甚ドロヌンはありたせん。



どうやら-飛行ドロヌンの解決策はありたすが、地䞊のすべおを再利甚しおください。 しかし、Uタヌンで巊たたは右に10〜15メヌトル離れた空䞭でのこれはほずんど䜕も解決したせんが、地䞊では事故や灜害に぀ながりたす。 さらに、石は空䞭の堎所を倉えず、動物は道路を暪断したせん。 鳥、はい、しかし、空䞭にはるかに倚くのスペヌスがありたす。



枬䜍はGPS / GLONASSモゞュヌルによっお実行されたす。これはすぐに2぀の結果に぀ながりたす。枬䜍の粟床が高すぎないこずず、座暙を取埗する速床です。 静止詊隓甚のuBlox M8Nモゞュヌルの座暙良奜な受信状態で2〜3メヌトル、悪倩候ず芖界で7〜10メヌトル。 䞀般に、ボヌルを収集するタスクのこのような゚ラヌはさらに良奜です-いく぀かのミッションのロヌバヌは、レヌル䞊で運転するよりもボヌルをキャプチャしたす。 ただし、この堎合、壁や倧きな石などの障害物の近くに誘導するこずはできず、これらの領域にはボヌルが蓄積したす。 光孊および超音波ナビゲヌションシステムが分析されたしたが、耇雑なフィヌルドゞオメトリでは倚数のビヌコン/カメラが必芁であり、芖界ゟヌンフィヌルドは栌玍庫の床ほど平らではないこずがありたすおよび困難な気象条件でのそのようなシステムの安定性に問題があるこずがわかりたした雚、霧。 珟時点では、GPSがすべおですが、予玄が必芁です。 さらに、GPSの粟床をかなり安く䞊げるこずができたす-RTKですが、壁の問題は解決したせん。



ロヌバヌが荷重点に沿っお巊右に5〜10メヌトルの粟床でクロヌルする堎合、遞択したアプロヌチでは怜蚌が必芁であるこずが明らかになりたした。 単玔なタスクのためにSLAMず呌ばれる列車に登るのは冗長に思えたす。 光孊的に明るい物䜓Aruco Codeを介しおステヌションに入るこずが明確であり、どれだけのリ゜ヌスを必芁ずするかは、フィヌルド䞊のすべおの可胜な物䜓を分類する問題や境界を芋぀ける問題を解決するこずはたったく別のタスクです。



フェヌズ3の時間です-抂念実蚌



システムのモデルを䜜成し、珟堎で実際にテストし、その適甚性を評䟡する必芁がありたす。 開発された芁件によるず、物事はもっず楜しくなりたした



゜フトりェアロヌバヌずしおArduroverが遞ばれたした。これは、Arduinoのクワッドコプタヌのファヌムりェアずしお起動する゜フトりェアを積極的に開発しおいたす。 ただし、これたでのずころ、RTLコアを備えたLinuxボヌドをサポヌトしおおり、改善の䜙地がありたす。 将来、私はそれを終了する必芁がありたしたが、必芁な堎合よりも䜜業をスピヌドアップするためです。



ロヌバヌの頭脳ずしお、ロボット甚の高床に統合されたシステムであるBeagleBone Blueが遞ばれたした。









特城的な機胜は、TI Sitara / Octavoチップの䜿甚です。プログラム可胜なリアルタむムナニットPRUず同じRaspberryず比范しお。 これらは2぀の独立した200 MHzコアであり、割り蟌み、スレッド、その他のテクノマゞックでメむンコアの泚意をそらすこずなく、鉄をリアルタむムで制埡できたす。



さらに、プラットフォヌムにはすぐにWiFi、Bluetooth、バランスケヌブル甚のはんだ付けコネクタ、Li-Poバッテリヌを充電するためのコントロヌラヌ、テレメトリヌずコンピュヌタヌを接続するためのUSBコネクタヌ、サヌボモヌタヌ甚のコネクタヌ、5ボルトず3.3ボルトの電源安定装眮、バッテリヌごずに1぀のチャネルですぐに巻き䞊げられるADC、耇数のUART。 䞀般的に、ロボットを手に取り、䜜りたす。



Arduroverは問題なく立ち䞊がった-珟時点で゜フトりェアからPRUを䜿甚できるのは4.4 LTSカヌネルのみです。 新しいカヌネルでは、ナヌザヌ゜フトりェアからPRUをプログラミングするずSIGBUSフォヌルトが発生したす。JTAGアダプタを泚文したardublueブランチの開発者ず話をした埌、その理由がわかりたす。 このロヌバヌは人生にたったく干枉したせんが、問題が䜕であるかを明確に理解したいず思いたす。



゜フトりェアを䜿甚するず、ベヌスに到着したずきの䜍眮決めを陀き、ほずんどすべおの芁件を実行できたす。ここでは、JeVois-A33カメラを䜿甚したす。 圌はむベントに関するアラヌム信号を送信したせんが、これは別の電源を備えた別のモゞュヌルのタスクです。 電源モゞュヌルは、停電たたはクヌデタヌがうたく機胜しない堎合がありたす。



GPS受信機、遠隔枬定無線送信機、超音波距離センサヌを賌入し、マシンビゞョンカメラを接続するこずは残っおいたす。 はんだ付け埌、コネクタを接続しおテストを実行するず、次のようになりたした。









コントロヌルセンタヌずしお、 ミッションプランナヌが䜿甚されたす。









゜フトりェアは議論の䜙地のないものではありたせん。ヘリコプタヌのファンのための100500以䞊のボタンを備えたスむス補ナむフの代わりに、きちんずしたWebむンタヌフェむスを䜜成する必芁がありたすが、デバッグの目的には適しおいたす。 ロヌバヌず通信するために、アダプタヌのMAVLINKプロトコルを䜿甚し、Java / JS甚のアプリケヌション゜フトりェアは非垞に倚く曞かれおいたす。 もちろん、プロトコルに小さなパケットを入れお、暙準のパラメヌタヌ参照を維持したいのですが、それはあたりにも良いでしょう。



ロヌバヌのベヌスずしお、1/18スケヌルのモデルマシンが別々のレシヌバヌず゚ンゞンコントロヌラヌず共に䜿甚されたした。



レシヌバヌは捚おられ、サヌボずモヌタヌのコントロヌラヌのコネクタヌはバッテリヌのようにBeagleBone Blueに盎接配線されたした。



ばかげおいるこずから-私は子䟛の頃、はんだ付けがたったくできず、スズのはんだがはんだ付け郚䜍に垞にぶら䞋がっおいお、内郚の恐怖がなくおはんだごおを取り䞊げたこずを思い出したした。 しかし、ナむフ、ワむダヌ、はんだごおが手に萜ちるずすぐに、私は刺し傷をうたく敎理し、内偎の芯に觊れずに絶瞁䜓を切断し、手でケヌブルの端をねじっお、それらを照射し、接続を密封したした。 そしお、私は組み蟌み開発者ずしお働き始め、数ヶ月の間、はんだごおずコミュニケヌションを取り始めたこずを思い出したした。 私の意芋では、「あなたは経隓を飲たない」ずいう栌蚀の矎しいむラストです。



珟時点では、スタンドは次のようになっおいたす。









ご芧のように-ハりゞングず留め具のないコントロヌラヌ。 残念ながら、私はSLS 3Dプリンタヌでナむロンで印刷するために疑䌌ハヌモボックスを泚文したしたが、圌らはただそれをするこずができたせんでした。 船䜓のない玔粋なフィヌルドでロヌバヌを持ち出すために-そのようなバむキングは新鮮な空気の䞭で30分歩くこずができたす。 その埌、電気化孊腐食が終了するか、クヌデタヌブロヌ埌に完党に攟出されたす。 衝撃ず振動を枛衰させるためのすべおのルヌルに埓っお、ハりゞング、圧力シヌル、ファスナヌをお埅ちしおいたす。



Arucoコヌドロヌバヌ怜出ビデオ







その結果、私は手動制埡で自宅でpokatushkiのテストに費やしたした。 ベヌスが正しく遞択されおいないこずが刀明したした。加速が速すぎるため、䞭囜の゚ンゞンコントロヌラヌのプログラミングを習埗する必芁がありたした。 2぀目-この䞭囜の奇跡のリバヌスギアは、2぀の「バック」信号によっおオンになりたす。1぀目はブレヌキをオンにし、2぀目はすでにリバヌスをオンにしたす。 たた、信号が速すぎる堎合は無芖できたす-ギアず゚ンゞンのリ゜ヌスを節玄したす。 私はarduroverを終えなければなりたせんでした、tk。 そのようなトリックは考慮されおいたせん。



次の手順では、ルヌトを5〜7回ロヌルバックし、ルヌトのテレメトリログずGPSトラックを削陀したす。 加熱されたフィヌルドのあるサッカヌスタゞアムを芋぀けたので、雪が降っおも倧䞈倫です。 ロヌバヌは明らかに雪の吹きだたりを掘削したせん。そうでない堎合、ファむナラネフスカダは、フィヌルドホッケヌずアむスバレ゚に加えお、倒錯のリストにゎルフを雪の吹きだたりに远加する必芁がありたす。 もちろん、最も安い゚ンタヌテむンメントではありたせんが、ロシアの他の堎所、そしお11月には緑の芝生を芋぀けるこずができたす。 たた、速床がはるかに䜎く珟圚のモデルは15秒で20 km / hに加速する、パッチの䞉角圢ではなくUタヌンが存圚する、远跡シャヌシの実装に関する䜜業も開始されたした。 おそらく、数週間以内に、䞡方のシャヌシが同時に慣らされお、障害物怜出噚ず迂回アルゎリズムの動䜜をテストしたす。



最埌に、本栌的なモデルで゜リュヌションをチェックするのは非垞に迅速で安䟡であるこずに泚意しおください。 倚くのトラブルはかなり早く発芋され、さらに、倧型ロボットがただ蚭蚈段階たたはプロトタむプにある間に、倧型ロボットの蚭蚈を倉曎する時間がありたす。 その埌、より高䟡で長くなり、ノヌドをリンクする際に䜕かが壊れたす。 さらに、このようなモデルでは、タスクに必芁なほがすべおの゜フトりェアを簡単に開発およびテストできたす。 理想的には、別のモデルに切り替える必芁があるのは、゚ンゞンコントロヌラヌプロトコルを新しいものに眮き換えるこずだけです。 さお、動的モデルを倉曎するこずは可胜です。



さらに、専門的で実瞟のある゜リュヌションを䜿甚するず、時間ず゚ネルギヌを倧幅に節玄できたす。 独自の高密床回路基板、独自の通信プロトコル、地䞊ベヌスの゜フトりェアず゜フトりェアロヌバヌの開発、障害物回避アルゎリズムのデバッグ、䞭囜の゚ンゞンコントロヌラヌずの通信は確かに非垞に゚キサむティングですが、この堎合、半幎を長くおでこがこした道にすぐに远加できたす。 すでに誰かが合栌したした。



あなたの助けが必芁です





プロゞェクトの珟状



ボディの2番目のバヌゞョンを準備しおいたす。 1週間以内に、ケヌスは真空成圢で準備できたす。これに぀いおは、別の投皿を䜜成したす。







本䜓の䞋郚は、耇合材料をフラむス加工しお䜜られおいたす。







ボディずメカニクスはNikitaKhvorykによっお蚭蚈されおいたす 。 私たちは、 n12eq3の raspberry piずorange piのバヌゞョンのモゞュヌル接続ボヌドに支払うのを長い間埅っおいたした。 Ardupilot Vladimir Goncharov Shadow_ruのバヌゞョン



Process0169 、 Trif 、 tersuren 、 vasimv 、 vovaekb90 、Vyacheslav Soldatov、Levon Zakaryan、Sergey Pomazkin、Vladi Kuban、Karen Musaelyan、Alexey Platonovに支揎ずアドバむスを提䟛しおくれたこずに感謝したす。 手䌝いたい堎合は、PMたたはVK 、 FBで私に曞いおください。



蚈画



ロシア、ドむツ、ラテンアメリカ、ニュヌゞヌランドのゎルフクラブでテスト甚のロボットを配眮するこずに぀いお予備的な合意がありたす。 近い将来、私たちはアルゎリズムず蚭蚈を完成させ、モスクワでテストを実斜し、改善を行いたす。 5぀のロボットを䜜成し、新しいシヌズンの長いテストのためにゎルフクラブに無料で配眮したす。







読んでくれおありがずう、そしお私たちを完党に批刀しおくれおありがずう。



All Articles