RealSence D435iを3Dスキャナーに

3Dプリンター

こんにちは、ふうです。
Prusa Community JAPANやTwitterで仲良くさせていただいているhanaさんにRealSence D435iをお借りすることが出来たので3Dスキャナーとして使えないか試してみました(というか3Dスキャナー的に使えると思ってお借りしたんですが)。
hanaさんのnoteも色々と3Dプリンターの実験をされていて参考になります。

Intel の RealSence D435iは産業用のスキャンデバイスで3Dスキャンもできるし、顔や手を認識してジェスチャーや表情の認識などソフトを開発できれば様々なことに使うことが出来る物の様です。
問題はそんなスキルが無いので借りたもののどうしようって所でした。

諦めきれずしつこく検索してこちらのページにたどり着きました。
RealSence D435に3DプリンターでプリントしたパーツとArduino UNO R3を使用し3Dスキャナーにしてしまった方の記録です。

完全にこの通り作業しただけなので特段書くことも無いのですが、日本語情報は見当たらなかったため補足として残しておきます。

スポンサーリンク

準備するもの

Windows PC(Macでは動かないです)

Intel RealSence D435i

インテル
¥47,632 (2022/11/08 21:38時点 | Amazon調べ)

Arduino Uno R3(互換機でも可)
MF-6402411 Stepper motor with ULN2003 Driver
オスメス ジャンパーワイヤー 6本
コチラのセットだとステッピングモーターとモータードライバーも含まれているので良さそうです。
セット買い以外だとモータードライバーの入手が困難でした。
付属のUSB Type-Bケーブルはかなり短いので長くいものが有った方が使いやすいです。

2020 アルミフレーム 30cm
アルミフレームの形状は色々あるようで、ダウンロードできるstlだとナットが入りませんでした。

トラスコ中山(TRUSCO)
¥265 (2022/11/08 21:44時点 | Amazon調べ)

ボールベアリング 1コ 内径8×外径22×幅7mm

エヌティエヌ(NTN)
¥190 (2022/11/08 21:53時点 | Amazon調べ)

M4 ボルト(15mm x2本 8mm x8本) M4ナット(2コ 四角ナットの方が使いやすいかも)
1/4 ボルト(カメラ固定用 10mm程度)
M4 タップも有ると便利(ハンドルは3Dプリンターで作ればOK)

トラスコ中山(TRUSCO)
¥261 (2022/11/08 21:55時点 | Amazon調べ)

3Dプリントパーツ

さきほどのページから「3D scanner 3D printed parts.rar」をダウンロードします。
アームは分割式と一対式があるのでベッドサイズは150mm x 150mmあればプリントできます。

組立

部品が準備できれば組立です。
AliexpressからArduino UNO R3互換機とモータードライバーを入手したのですが、オスメスのジャンパーワイヤーが無く別途シリコンハウスで20cmのケーブルを購入しました。
0.6mmノズルで作成したので一部ネジ穴等きつめでしたが、組立に支障は出なかったです。

購入した時は20cmのジャンパーワイヤーは長すぎるかなと思いましたが、負担なく取り回しできて良かったです。
電源はPCからのUSBケーブルで供給します。

PC作業

さきほどのページから「3D scanner.rar」をダウンロードして解凍します。
Arduino IDEをダウンロードしインストールします。
USBでPCとArduinoを接続し3D Scannerの中のArduino 3D scannerフォルダを開きArduino 3D scanner.inoをダブルクリックしてArduino IDEを立ち上げます。

1. の接続先を確認し、2.のUploadボタンを押します。反応ない時は接続先を変更してみてください。
接続先にArduino UNO が出てきていない場合はプルダウンの一番下「他のボードとポートを選択」でArduini UNOを選びます。

MainProgramの中の3Dscanner.exeをダブルクリックして立ち上げます。
Setteingsをクリックすると右の画面になります
Basic Settingsがスキャン時の設定 Mesy Settingsがメッシュファイル作成時の設定です


細かな設定はいまいちわからなかったのですが、一番精度に関連したのは距離とStep sizeです。
距離は近すぎると横に広くスキャンされるので近ければよいというわけではなく、適正距離がよさそう(アルミフレームの端より1~2cm内)です。
Step sizeは回転角なので細かければ情報が増えますがスキャンに時間がかかります、16位が精度よく?できました。

Start Scanでぐるっとスキャンした後、Show Point Cloudでカラーの3Dデータが確認できます。
Make STLでSTLを作成し、Save STLで保存します。
最初回転が反時計回りになり、スキャン結果がおかしかったのですが、Arduino IDEで19行目「steps = steps;」を「 steps = -steps;」に書き換えることで回転方向が時計回りになりまともにスキャンできるようになりました。

肝心のスキャン精度はあまり良くないようで(トラッキングとかの方が得意なのか広域用なのか)テストでいくつかスキャンしてみましたが、マットな陶器製のハリネズミが一番まともにスキャンできました。
反射してしまうものが苦手(白飛びして情報が無い)なようですが、マットな物ってあまりないですよね。通常は3Dスキャナー用のスプレーなどを使うようです。

なかなか衝撃的なカタツムリが生まれてしまいましたが、この辺りで実験を終了したいと思います。
RealSenceは返却してしまうのでArduinoはどうしようかなといった感じですが、少し勉強してみてボタンを押せば回る(1度,5度,10度くらいのボタン)回転台か、カメラ用のドリーでも作ってみようかと思います。

一周くるっと平面的に回るだけですし、現状売られている3Dスキャナーには程遠いですが、現状売られているものもまだまだな気がしますよね。

タイトルとURLをコピーしました