URGを使った「空間スキャナ」を検討する



 前回でLinux上とWindows上からURGが使えることを確認しました.いつかは車輪型のロボットに乗せて環境地図ベースの自律走行をやってみたいですがその前にもうちょっとこれ単体を扱ったものを作ろうと思います.

気軽に持ち運べて3次元空間をサッとスキャンできるデバイス

もともとロボットの環境地図生成のために買ったセンサなので距離データの精度も高くてデータ取得間隔も40fpsと高速です.Web検索するとこのセンサを回転させて3次元のスキャナとしている製品や研究例が沢山ありました.

私は建築にも興味があり取り壊されてしまう古い建造物などは空間ごと残せたらなぁと思うことがありました.今でこそiPhoneの上位モデルにはLiDARが搭載されていて深度情報付きの画像が取得できますがそんな感じで気軽に持ち運べてサッと空間をスキャンできるデバイスが欲しいと思っていたので作ろうと思います.

RICHO THETAのような全天球カメラと3次元スキャナを組み合わせれば深度情報付きの全天球画像を取得することができます.THETAの周辺デバイスという位置づけで作るのも面白そうですね.これらを実現するには3Dの知識や組込みの知識,機械加工などの知識が必要でしょうか.学習しながら作っていこうと思います.

↓URGを3次元スキャナとして使用している例

GEO SLAM ZEB

こちらは英国の企業のようでハンドヘルドSLAMスキャナーを展開しているようです.屋内環境や屋外環境(洞窟や鉱山も!)を3次元でスキャニングできて不動産や建築,鉱業での用途を想定しているとあります.

ZEB GOという製品にまさにURGが使用されており,無限回転機構とSLAM等を処理するコンピュータ,バッテリ等からなる製品のようです.動画がありますが歩き回りながら3次元をスキャニングできており,リアルタイム?で処理できるみたいです.URGがぐるぐる無限に回転しているので通信(USB/Ethernet)や電源などはスリップリングを介しているのでしょうか.

森林3次元計測システム OWL

こちらは日本企業で株式会社アドイン研究所さんが展開している森林調査を自動化するシステムです.
森林の管理という事についてあまりよく知らなかったので調べてみたのですが,人工林を管理するには樹木の形状や位置,太さ等を記録する必要があるようで1本1本手動で行っているそうです.作業者によってばらつきがでたり作業に時間がかかる等の問題がありこれらを解決するために開発されたそうです.

スキャナで樹木を3次元的にスキャンしてPCのアプリでスキャンデータのマッチングや,樹木の解析を行う構成のようです.スキャナと専用の解析ソフトから成る製品のようです.

↓YouTubeに公式の紹介がありました.

こちらもまさにURG(イーサネットタイプ)がスキャナとして使われており,ZEB GO同様にURGをローリングさせて3次元をスキャンする仕組みのようです.こちらは無限回転でなく180度回転させたら元に戻るタイプのようです.

インターフェースはボタン一つとLED,キャラクタ液晶でシンプルでいいなぁと思います.筐体デザインもオレンジ色のパネルを挟み込むようなケースでカッコいいです.
ケース内にはURGのローリング機構や制御用のコンピュータ,電源回路やGPS等を搭載しているのでしょう.動画から想像できるのはこれくらいです.中身が見たい...


自作空間スキャナのコンセプト

「3Dスキャナ」だと小物をスキャンする用途のモノと区別がつかないのでこれ以降は「空間スキャナ」と言います.
ざっくりとした案を書き出してみます

・URGを180度ローリングさせて3Dスキャンする
・気軽に持ち運びできる程度のサイズ(WDH:150x60x250くらい)と重量にする
・ユーザーインターフェースは電源SWとスキャン開始のボタン,LEDのみ
・電源はバッテリとし,筐体に内蔵させる
・全天球カメラと組み合わせて使える
・スキャナはスキャンだけ行う.マッチング等の処理はPCで行う
・スキャンデータは汎用性を考え,距離情報,受光強度,タイムスタンプをcsvやtxtで保存する

空間スキャナのイメージをFusion360で描いてみました.3DCADは学生時代にInventor学生版をお遊びで使ったことがある程度です.私は機械系出身ではないので見様見真似です.
簡単なモデルでも3Dだとイメージしやすくなりますね.Web上に使い方の情報もたくさんあるしこれが個人無料で使えるなんていい時代です.


筐体上部にURGをローリングさせる機構があり90度に曲げたアーム状の部品にURGを取り付けます.
そうです.アドイン研究所さんのOWLっぽい何かです.


動作イメージとしては上図のようにURGを180度回転させ3次元を測域します.
赤い扇状のものはレーザーの走査イメージです.


システム構成

次にシステムの構成を検討します.
組込みの教科書的に入力・処理・出力の単位で描いてみました.



フォトインタラプタはURGのローリング機構の零点検出に用います.動力源はステッピングモーターが向いているでしょうか.ロボット用のコマンドサーボも検討したのですが一定速度で回転するだけでいいはずなのでステッピングモータとします.

制御部はLinuxボードとマイコンを使用します.LinuxボードでURGを制御しステッピングモータの制御やプッシュスイッチの入力判定,LEDの制御,加速度センサとの通信はマイコンが行います.
Linuxボードとマイコン間はUART等で通信します.そこまで複雑な処理は行わないので8bitマイコンで十分なはずです.

Linuxボード自体にもGPIOやI2C等のI/Fを持つものはありますがセンサ等の入出力のI/Fをマイコンで一挙に処理し,UART通信だけにまとめられれば汎用性が高くなりどんなLinuxボードでもUARTさえあれば対応できます.

加速度センサはスキャンデータの天頂補正のために使用します.RICHO THETAのビューアであるヤツですね.

最後に

今後はこの「空間スキャナ」製作を記録していきます.
まずは詳細の設計と部品の見積もりですかね.

コメント