数年前に中古で購入した北陽電機製のUTM-30LX(以下,URG)というセンサがあります.
その当時,自律移動ロボットに興味があり環境地図生成や障害物検知に使おうと思っていました.しかし車輪型のロボットのハードウェアの作成や実験場所の問題やモチベーションその他諸々の問題で実現せずに眠っていました.
最近やる気が出てきたのでまずはこれを使って何かを作ってみようと思います.
動作確認
まずは動作確認です.純正の可視化ツールであるUrgBenriPlusを使用します.
側面のラベルにあるように12V電源を接続します.
茶:DV12V
青:GND
緑:同期出力 (オープン)
白:COM (オープン)
Win10で使用していますがUSB接続しただけで「USBシリアルデバイス」として認識されました.該当のCOM番号を選択しConnect
deviceするだけで下図のようにスキャンした概形が表示されました.
1081点の測距データが40FPSで取得できています.使用環境は屋内でセンサ本体を天井に向けています.天井と壁の直角な箇所も綺麗にみえています.凄い.
続いて受光強度を表示してみます.
この情報を使ってスキャンした物体のおおよその濃淡が分かるそうです.同じ距離に置いた物体でも,色が白いものと黒いもので強度に違いが見られました.これも面白いですね.何かに使えそう.
同期出力を見てみる
取説によると同期出力なるものがあります.
オープンコレクタ出力のようです.12Vの電圧をかけ10kΩ程の抵抗でプルアップしてオシロで見てみました.ほぼスペック通り1msON,
24msOFFの波形が見られました.この情報を使えばスキャン開始 /
終了のタイミングがわかりそうですね.
今回初めて買ったデジタルオシロが活躍しました.波形が見えるのはホント便利ですね.
NanoPiNeo2で動かす
続いて手持ちのLinuxボードであるNanoPiNeo2でも動かしてみます.OSはArmbian_21.05.1を書き込んでいます.
URGを接続後,”/dev/ttyACM0"が新たに出てきました.URGのデバイスファイルはこれのようです.
rasen@nanopineo2:~$ ls /dev/tty*
(その他いろいろ)
/dev/ttyACM0
プログラミングサポートページからUrgLibraryをDLします.
続いてこちらにあるように適当な場所に解凍してmake, make installします.
rasen@nanopineo2:~/src/urg/urg_library-1.2.5 $ make
rasen@nanopineo2:~/src/urg/urg_library-1.2.5 $ sudo make install
すると各種サンプルも同時にコンパイルされました.「get_distance」を実行してみます.
rasen@nanopineo2:~/src/urg/urg_library-1.2.5/samples/c$ ./get_distancee
1485 [mm], (733492 [msec])
1483 [mm], (733517 [msec])
1484 [mm], (733542 [msec])
1486 [mm], (733567 [msec])
1490 [mm], (733592 [msec])
1479 [mm], (733617 [msec])
1486 [mm], (733642 [msec])
1492 [mm], (733667 [msec])
1486 [mm], (733692 [msec])
1489 [mm], (733717 [msec])
10回分スキャンしてURG正面(0Deg)の距離とその時のタイムスタンプを出力するようです.25ms間隔で取得できていますね.
これでLinux上でも使えるところまで確認できました.Raspberry piやJetson,他のLinuxボードでも使えますね.ドライバを自分で書けばUSBホスト機能のあるマイコンでも使えそうです.
UrgLibraryのソースコードを少し読んでみましたがLinux上でシリアル通信する方法やセンサなどを管理する構造体の使い方などとても参考になりました.私はこれまでC言語での開発は組込みでマイコン用のソフトを開発するようなことしか経験がなく,Linux(というか汎用OS)上でのソフト作りの経験があまりありません.ドキュメントもありますしこれを機に学習してみようと思います.
最後に
Linux,Windows上でURGの一連の動作確認ができました.
このセンサはロボットの自己位置推定や障害物回避のほかにインタラクティブコンテンツで空間タッチパネルのセンサとしても使われているようです.さて何をつくろうか.
※”URG”の読み方は「アージ」だそうです.10年以上前に学校行事で北陽電機さんに見学に行った事があり,その際皆さんがそう呼んでいましたので正しいと思います.
コメント
コメントを投稿