Webカメラ、レーザー、および多数の無線コンポーネントから3Dスキャナーを作成する

昨年、私の友人と私はサマースクールにいました。 プロジェクトを作成する必要がありました。 3Dスキャナーの作成に関する2つの記事( onetwo )を読んだ後、私たちはそれを組み立ててみて、可能であればそのデザインを改善することにしました。 私たちはそれがどうなるのかさえ想像していませんでしたし、それ以上に、いくつかの科学と工学の展示会で彼と勝つとは想像していませんでした。 しかし、順番に。 結果を知りたい人は、カットの下で歓迎します(多くの写真)。



画像



最初のプロトタイプ



最初に、レーザー距離計を組み立てることにしました。 アマチュアフォーラムの記事に基づいて作成されました。 レーザーポインターとカメラだけ。 画像処理のために、Javaプログラムが作成されました。 1回の測定では、2枚の写真を撮影しました。レーザーありとレーザーなしです。 それらを比較した後、私たちは間違いなくレーザーポイントを見つけることができました。 動作した後、レンジファインダーは2つの平面で回転できるプラットフォームに設置されました。 何が起こったのかを示す前に、私はあなたに警告する必要があります-サマースクールにはそれほど多くの資料がないので、私たちは持っていたものからプロトタイプを組み立てました:



画像



カメラはすぐに見ることができ、レーザーはその真上にある真鍮のシリンダーです。 プラットフォームを回転させるために、Atmega32マイクロコントローラーの制御ボードに接続された2つのステッピングモーターを使用しました。 レーザーが接続されました。 ボード自体は、USB-> UARTアダプターを介してコンピューターに接続されていました。 コンピューター上のプログラムは写真を撮り、処理し、受け取ったポイントの座標をファイルに入力し、コマンドをコントロールボードに送信しました。



結果は面白かった。 はい、距離を見つけました。 はい、スキャナーの上の半球の任意のポイントで「狙う」ことができます。 そして、私たちの喜びは際限がありませんでした。 しかし、この半球のスキャン時間を見積もると、48時間になりました。 そして、それはカメラではありません。 Javaでもそうではありません。 そして、インストールが非常に弱く、5秒間の各ターン後に変動したという事実。 測定を行い、向きを変え、揺れが止まるまで5秒間待たなければなりませんでした。 さらに、各ショットの前にカメラのライブラリがオンにしてからオフにしました。 1〜2秒かかりました。 しかし、サマースクールは終了し、やり直す時間はありませんでした。プロジェクトの実施の前夜でした。 むしろ、朝。 翌日、私たちは科学審査員の前のコンテストでプロジェクトを発表し、予想外に勝ちました。 おそらく、まさにこの勝利のために、私たちはこのプロジェクトで作業を続けることにしました。



バージョン2



実際、夏は終わり、学年が始まりました。 働きたいという欲求はなくなりました。 彼らは、1か月前の次のコンテストのためにインストールを完了することを計画していました。 月 そして、突然3日。 しかし、1か月後に、インストールを変更することにしました。 強く組み立てるには、レーザーポインターにレンズを取り付けて、レーザーラインを作成します。 これにより、すぐに720ピクセルをスキャンできます(スキャナーにHDカメラがありました)。 わずか3日間で調整が行われています。



画像



2番目のスキャナーは、プラスチックの目撃用定規、接着剤、マスキングテープで構成されており、青色の電気テープのおかげで維持されます。 レンズの代わりに試験管があります。 この試験管には緑色のレーザーが輝いています。 反射されたビームは、スクリーン上にほぼ均一なレーザーストリップを作成します。 距離計は、水平面内で回転する1つのモーターにのみ取り付けられています。 管理ボードはSTM32VLDiscoveryに置き換えられました。 STM32をよく知っているだけで、Atmegaでさえ燃え尽きてしまい、プログラマーは長い間行方不明になりました。 見た目は良くありませんが、機能します! 振動が減少し、それに応じて速度が増加しました。 しかし、それほどではありません。 ここで、非常に興味深いキャッチが発見されました。中国のレーザーポインターはすぐには点灯しませんでしたが、1秒以内に徐々にパワーを上げていきました。 したがって、振動のための1秒、レーザーのウォームアップのための1秒、ショットのための1秒、そしてそれらの2つがあります。 したがって、4秒を取得します。 しかし、1回の測定で最大720ポイントの距離が見つかりました! スキャンプロセスは次のようになりました。



画像



結果は次のとおりです。



画像



写真はあまりおもしろくありませんが、プログラムでは円が大きくなっています。 さまざまな角度から見ることができます。



そして、競争は正確に何ですか? しかし、何も! 午前4時にすべてのスキャンを終了し、午前9時にスタンドでレーザーが燃え尽きていることがわかりました。 結局のところ、ホテルからスタンドに運んでいる間に雨が降り、電源を入れると燃え尽きました。 しかし、「5時間前に働いた」という言葉を信じるのが難しいように、それは機能していないように見えます。 動揺しています。 レーザーのかすみで継続したいという欲求は消えました。 しかし、それでも収集されました...



第三版



そして、彼女は競技のために再び集められました。 さらに、私たちは長い間、徹底的に準備しました。 1週間以上。 結果は次のとおりです。



画像



最初に目を引くのは、現在スキャナーの周囲ではなく、プラットフォーム上で回転するオブジェクトをスキャンしていることです。 また、適切なレンズを入手し、すべてをうまく組み合わせてプログラムを書き直し、デバッグボードを自家製のものに置き換えました。 そして今、私たちは測定ごとに1つのショットを取ります。 レーザーは十分に強力であり、レンズは写真でレーザーを一意に見つけるのに十分なほど優れています。 このため、レーザーがウォームアップするのを待ちません-常にオンです。 そして、カメラの電源を一度だけオンにします。 つまり、時間は主にプラットフォームの回転と画像処理に費やされます。 プログラムは、精度を選択するためのメニューを追加しました。 スキャン時間-2〜10分。 選択した精度に応じて。 最高の精度で、プラットフォームが1ステップで0.5度回転し、距離は0.33 mmの精度で決定されます。 プラットフォームは、ギアボックスを介してステッピングモーターによって駆動されます。 プラットフォーム自体は大きなディスクであり、モーターシャフトのゴムローラーは小さくなっています。 モーターとレーザーは、電界効果トランジスタを介してSTM32F050F4マイクロコントローラーによって制御されました。 記事の冒頭で、このスキャナーを使用しておもちゃのスキャンを取得しました。 スキャナーは.obj形式で点群を生成するため、三角測量後、スキャンしたオブジェクトを3Dプリンターで印刷できます。これは同じ写真で見ることができます。 画面では、三角形分割後のモデルを見ることができます。 モデルの手動作業は実行されませんでした。



競争に勝ちました。 そして彼は、国際Intel ISEFコンテストにパスを渡しました。 そして、次のスキャナーの開発を始めました。



第4バージョン





画像



現時点では、これが収集したスキャナーの最新バージョンです。 比較のために、プラットフォームは2番目のバージョンです。 私たちは、できる限り徹底して4番目のスキャナーの開発に取り組みました。 インスタレーションはCADで描かれ、細部はレーザーカットされ、すべてが塗装され、余分なものは外部から突き出ていません。 変更点:プラットフォームは本当にギアになりました。 プレキシガラスから彫られ、エッジの周りに652個のクローブがあります。 これにより、以前のスキャナーでスキャンがひどく破損した問題が解決されます。ゴムローラーが少し滑ったため、プラットフォームが360度回転しなかったことがよくあります。 スキャンは「カットアウトピース」またはオーバーラップのいずれかでした。 ここでは、プラットフォームがどのように変化したかを常に正確に把握していました。 レーザー出力はプログラムで調整可能になりました。 これにより、レーザー出力をオンザフライで変更することが可能になり、暗い場所での不要な部品の露出を回避しました。 すべての電子機器を制御するために、彼らは新しいボードを作成せず、単にデバッグF401RE-Nucleoを使用することにしました。 デバッガーおよびUSB-> UARTアダプターとして機能するST-LinkV2.1がインストールされています。



精度は驚くべきものでした。角度分解能は0.14度です。 距離0.125 mm。 スキャン領域は、高さ20 cm、直径30 cmの円柱で、作成時(2014年5月)のすべての部品とレーザー切断の価格は4000ルーブル未満でした。



使用プロセスでは、最大精度を1回だけ設定します。 スキャンは15〜20分続きました。 ほぼ200万ポイントを獲得しました。 ラップトップは、点群からのモデルの計算を拒否しました。 実験はもう繰り返されませんでした。



おわりに



近い将来、プロジェクトの作業を再開する予定であるため、プログラムとインストールの両方を最終決定します。 私は近い将来、段階的な組み立てについて書き、図面、プログラム、その他すべてをレイアウトすることを望んでいます。 この記事は適合しません。



最後まで読んでくれたみんなに感謝します!



UPD:

同僚がスキャナーに関するビデオを見つけ、ISEFで撮影しました。



はい、ほとんどのビデオは面白くありませんが、ラップトップのモデルの最後です。



そして、スキャンされたオブジェクトの例を次に示します。 しかし、それらはすべてスキャナーの3番目のバージョンに属します。

Dropbox

model.objファイルでは、このゴムローラーがモーター上を滑るとどうなるかがはっきりとわかります。犬には3つの目があります。 スキャンが停止し、切り抜きが生じました。 すべてのファイルは点群です。 MeshLabを使用して開くことができます。 モデルは処理されませんでした。 完全に生のデータ。 上記の「白い斑点」-ドットのない領域を見ることができます。 カメラはそれらを見ません。 白い斑点は他の場所でも見られます。 それらは、暗すぎるエリアに表示されるか、表面を重ねたときに表示されます。 たとえば、stn_10.objファイルでは、ヤギの角が重なり合っているため、角の内面がスキャンされませんでした。



All Articles