私たちがどのように飛んで戻ってきたか:CROC飛行ロボット競技会への参加に関する詳細な報告

2012年9月3日、HabrahabrのWebサイトで飛行ロボット競技に関するニュースを読んだ後、私たちは気付きました。 その時までに、私たちは数か月間、ロボット工学に対する長年の関心をプロの方向に転換する時だと考えていました。そして、そのための言い訳を探していました。



したがって、参加に関する質問は発生しませんでした-議論が始まりました。 すぐにソフトウェアに焦点を合わせた既製のドローンを使用することにしました。 一見、条件は単純に思えたので、勝つことができるという幻想はありませんでした-多くのチームがあり、賞品は1つしかありませんでした。 カメラのみを使用することを決定し、コンピュータービジョンの分野での能力を実証しました。



将来を見据えて、競争の組織の高レベルに個別に注目したいと思います。 これはロシアではまだ起こっていません。 このイベントに参加できてうれしくて、勝つことができてうれしいです。





なぜカメラなのか?



ほぼすべてのセンサーがあります:道路のLIDARは音量を認識せず、晴天時には盲目になり、ソナーは互いに干渉し、不可解な反射、赤外線距離計、Kinectが近距離でのみ作動します。



センサーを介した飛行は、実験室の狭い作業でのみ可能です。 さらに、既存のセンサーのほぼすべてに範囲の制限があります。

この点でカメラは普遍的です。 重量と電力消費はソナーに匹敵し、速度はライダーに匹敵します。 範囲と解像度の点では、カメラには競合他社がありません。 ほとんどすべての野生生物が光学を使用しているので、なぜこの決定でやめるべきではありません。 もちろん、カメラを操作するには効果的なアルゴリズムが必要ですが、これが私たちの専門分野の分野で行っていることです。



クロールするために生まれた



当初、競争に備える自由時間は事実上ありませんでした。すべてのチームメンバーは異なる場所で働いていました。 カフェまたは誰かの家で話し合いました。 すでに地上ロボットの経験があったので、それらを訓練することにしました。 彼らはカメラ、 Pololu 3Piの通信モジュール、Whatman紙に黒い電気テープ(後の黒い紙のストライプが接着されている)をポリゴンレイアウトの形で置き、マーカーの小さなコピーを印刷し、アルゴリズムを書き始めました。



画像

画像

画像



3つの



そのため、最初のコントロールポイントの通過時に、気付かないうちに忍び寄りました。 コンテストの状況に応じて、チームのビデオプレゼンテーションを送信する必要がありました。 彼らは、セルギエフ・ポサドの主な魅力である聖三位一体聖セルギー大修道院を背景にビデオを撮影することにしました。 朝、仕事の前に集まった(まだ別の場所で働いていた)。 温度:-20。 こんにちは。 吹きだまり。 3番目のテイクから何かが削除されました。 私たちは見た-笑ったが、再び撃たなかった-彼らは残りを喜ばせることにした。



コンテストの主催者から、「あなたの資料が受け入れられました!」という1行だけの手紙を受け取ったときの喜びは何でしたか。



このコントロールポイントでは、主催者が受け取ったビデオをレイアウトし、私たちはトップ10にいました。 どうやら、私たちの単純なプロットは、競争の他の参加者に好まれた-いくつかのチームは明らかに彼らのコマーシャルで私たちをパロディしました。



すべてを見た後-これは8時間以上です! -他の参加者のビデオでは、多くの人がタスクの複雑さを理解しておらず、彼らが何をどのように行うのか理解していないという結論に達しました。 次のコントロールポイントはこれを確認しました-CT-1に合格した237人の参加者のうち、204人がCT-2の後に残り(合格するには、参加者が競技に参加し続けていることを確認する必要があります)、3番目の後に-72人(ここではすでに必要でした)現在の自動制御ドローンを表示します)。



地上ロボットの実験により、カメラでのみタスクを完了する基本的な可能性が証明されましたが、飛行に進む必要がありました。



世界はすごい



この段階では、すでにParrot Ar.Drone 2.0 Quadrocopterがあり、なんとか飛行できました。 次のステップでは、飛行任務に直接対処する必要がありました。 クロス(離陸および着陸マーカー)を認識しなければ、競技会で何もすることがないことは明らかでした。



C#をメインの開発言語として選択し、 Ar.Droneと対話するための既製のライブラリ (同胞のRuslan Balanukhinによって作成)を用意して、自動制御システムの開発を開始しました。



最初の段階で、私たちは単純に十字架の上にぶら下がっています。 つまり、ドローンは離陸し、下の部屋の十字架を決定し、その中心の上をホバリングして、それを側面に吹き付ける気流を打ち消すことになっていた。

マーカーの小さなコピー(直径1 m)を広告主に注文しました。 4x4 mの部屋の中央に1つの十字架を置き、その後、最初の洞察が始まりました。



これはすべて私たちにとって冷たい水の浴槽のようなものでした...



この段階で線を強調することを拒否すると、輪郭に沿った十字を認識し始めました。 数週間の「タンバリンと踊る」後、私たちは一日中いつでも70-80%のレベルで認識精度を達成し、それによってタスクを完了しました-ドローンは離陸し、十字架の上をホバリングしました。 すでにこの段階で、1つの認識を信頼できないことを認識しました。複数の認識の結果を平均する必要があります。



画像

この図では、赤い円は十字の中心であり、黄色はドローンの中心の投影です。



ドローン用ニンジン



この時点(3番目のコントロールポイントの1か月前)で、サンクトペテルブルク物理学数学協会239号が主催するSpring Robot Competitionに参加するよう招待されました。 それらの分野の1つは、 RobotChallengeの「エアレーシング」規制に準拠した飛行ロボットの競争でした。

追加の飛行経験を得て、他のパイロットとチャットするそのような良い機会を見逃すことはできませんでした。 しかし、準備の時間はなかったので、即興でやらなければなりませんでした。



競争の目標は、できるだけ多くの正しい8を10分で飛ばすことです。 規制によれば、ナビゲーションの補助として床に破線が描かれました。 少し考えた後、私たちは十字架にかかった経験を使うことにしました。 十字の中心の座標の代わりに、目に見える上部の点線をドローンコントロールモジュールに転送します。 その結果、無人機はニンジンの後ろのラバのように、このポイントの上をホバリングしようとし、次のポイントを滑らせました。



コンテストの前夜に行われた実際のトレーニンググラウンドでのデバッグ時間はわずか4時間でしたが、決定はエレガントであるだけでなく、実り多いものでした。5つのサークルを飛行し、2位の賞を受賞しました。

これらのコンペティションでは、コミュニケーションの問題という別の驚きを待っていました。 試行に割り当てられた10分間のうち、ドローンとの通信の確立に半分以上の時間を費やしました-彼は飛行中にドローンを失い、道に迷いました。 私は彼を止めて、再び仕事を始めなければなりませんでした。 他の参加者と通信する過程で、これはParrotドローンの標準的な問題であることが判明しました。



これらの大会で撮影したビデオを使用して、CT-3に合格しました。







フィルターとすべてが判明します



帰国後、次の段階であるマーカー間のフライトに進みました。 サンクトペテルブルク競技の後、実際の条件で実際の距離をできるだけ飛ぶことが必要であることが明らかになりました。

夏休み中に学校の体育館を使用することに同意しました。 彼らは等身大の十字を印刷し、再び驚いた-下の部屋から大きな十字を決定することは不可能であり、それは単に下の部屋に完全に見えない。



もう一度、概念を変更する必要がありました-私たちは線に沿った十字の定義に戻りました。 アルゴリズムは次のとおりでした-最初にすべての線を取得し、次に引き裂かれた線を結合し、コントラスト、場所(天井と壁に十字を付ける必要はありません)でフィルタリングし、不要なものをすべて切り取ります。 その後、十字線を見つけて、それが実際のマーカーのように見えるかどうかをすでに理解しようとしています。 つまり、フィルタリング、フィルタリング、およびフィルタリングを繰り返します。 これはリソースの点では非常に貪欲ですが、非常に信頼できます。



元の画像:

画像



見つかった行:

画像



コントラストフィルター:

画像



引き裂かれた線を組み合わせます。

画像



すべての交差点:

画像



フィルターは十字架のようなものではありません。

画像



結果:

画像



郵便、電話、電信を取る



最後のチェックポイントが来ました。 大会の状況に応じて、主催者のトレーニング会場で行わなければなりませんでした。

最初のテスト飛行にサインアップしました。 CROCに到着すると、別の驚きに直面しました-コミュニケーションの問題に風が加わりました。 私たちのドローンは平凡に吹き飛ばされ、その時は突風に対抗するアルゴリズムがありませんでした。 その結果、20回の試行のうち、KT-4のタスクを3回しか完了できませんでした。 この試みを考えてくれたオーガナイザーに感謝します。 最初にCT-4に合格しました。



風に対抗するためのアルゴリズムを設定しようとして、再び通信の問題に遭遇しました。 風の強い天候で路上でテストを実施しましたが、ドローンとの接触を失い、ドローンをほぼ破壊しました。

何かをする必要がありました。 すでに知っているように、コミュニケーションの悪さはParrotドローンの一般的な問題です。 したがって、私たちはそれを解決するためにすでに見つかった方法を利用しました-外部アンテナの設置。 外部アンテナとルーターにより、通信の問題が解決したと考えることができました。 後で判明したように、多くのチームは競技会でのみこの問題に遭遇しました。



最終日の3週間前に、主催者は最終的にトレーニンググラウンドを承認しました。 すべての参加者には、アルゴリズムを構成するために2回彼を訪問する機会が与えられました。



シャシリクファン



完成した訓練場への最初の訪問後、私たちはタスクを完了できないと感じました。 次の3つの問題がありました。

  1. 廊下の定義。 分割壁は、壁検出アルゴリズムに干渉するビルディングブロックを使用して編成されました。
  2. 風に乗って。 目を閉じて着陸操作を行いました。十字架を見つけ、照準を合わせて着陸を行います(2、3メートル飛んで座ります)。 しかし、突風があれば私たちはその場所から吹き飛ばされます。
  3. 離陸して風になびきます。 また、この操作を「マシン上で」行いました。その結果、風によって壁に投げつけられる可能性がありました(何らかの理由で、壁に触れることは競技条件で禁止されていると考えました)。


カメラの手動制御で迷路を飛行しようとすると、壁との衝突と衝突に至りました。 2回目の試行でも同じ結果が得られました。

最初の訪問で行ったのは、さまざまな時間に埋め立て地を撮影することでした-太陽が雲の後ろにあり、余分な影を与えず、逆に明るい太陽と対照的な影で。



週の残りの部分で、 消失点アプローチを使用してコリドーの定義を確定しました。

競技の3日前に2回目に到着すると、廊下を一方向に自動的に飛行することができましたが、着陸と離陸の問題は未解決のままでした。



あと二日残った。 同時に、彼を打ち負かしたかどうかを調べるために、突風の条件を繰り返す方法は明確ではありませんでしたか?

風に対処する方法として、着陸時に外部の影響に積極的に反対しました。かかと、ピッチ、ヨーの角度を維持しようとしました。 そして、彼らはネジで離陸することに決めました-同時に高さを得て、向きを変えます。

ジムでデバッグし、ファイバーボードシートを使用して突風を作成します。 それはすべてかなりコミカルに見えました。







底まで飲んで......



8月23日21:30に、ジムから戻った後、私たちは尊敬をもって競技のすべての段階を通過したために眼鏡を上げました-今、私たちはタスクを完了することがわかりました。 もっと正確に言えば、私たちにはそれを実現する良い機会があるということです。His下、事件は取り消されていません。

壁にぶつかることなく廊下を飛行することを学びました。 どんな天候でも十字架をよく認識しました。 両方のクロス(参加者は私を理解すると思います)。 通信と風の問題も解決されました。







時間がなかったのは、ルートの方向の自動選択だけです。 ターンを決定するために、各着陸後に切り替えられた右手/左手のルールを使用しました。 そして、それは私たちとほとんど残酷な冗談を演じました。



霧の中のハリネズミ



飛行中の帰り道で障害物の壁に寄りかかって、私たちは右手の規則に従って向きを変え、すでに訪れたマーカーに飛んだ。 着陸後、左手に切り替えました。 最後のターンに到達すると、彼らは再びターンし、再び戻ってきました。 そして、3回目の着陸の後、右手のルールが再びオンになり、無事に戻りました。

最初の試行で受け取った6分45秒-負け時間-は誰かがタスクを完了するだけで十分であることがわかりました。 同時に、右手/左手のルールをキャンセルすることはできませんでした。また、ドローンが再び降りて旋回を開始する可能性がありました。 次に、2回目の試行で、「すべてのお金で飛行する」ことにし、ドローンの速度を1.5倍に上げました。 しかし、残念ながら、彼らは障害物までの距離に依存する減速パラメーターを変更するのを忘れており、時間内にブレーキをかける時間がなく、最終的に壁に立ち止まりました。



誰も遠くに行けないということは、私たちにとって本当に予想外でした。 1日半の間、私たちは誰かが私たちよりも速く飛ぶのを待っていました(主催者のドローンは最高の時間を過ごしましたが、彼らはオフセットに参加しました)、私たちはリラックスして休むことができ、他の参加者の成功を心から願っています。 しかし、運は気まぐれで、今回は私たちの味方でした。



以下はドローンの飛行記録です。 認識速度が不均一だったため、ビデオ上の時間は現実と一致しません。






All Articles