2018年6月27日水曜日

$99と$400のLIDAR(360度レーザー距離測定機)を動かしてみた(YDLidar X4とG4)


背景

LIDAR(ライダー)とはレーザーで距離を測れる装置のことです。
$99で売られているLIDARがあったので、同じメーカーの高性能版($400)と一緒に買って試してみました。

使ったもの

Linuxが動くPC

下記2種類の環境で動作を確認しました。
  • Intel Core i7が載ったノートPC + Ubuntu17.10
  • Rasbperry Pi3 + Raspbian Streatch

LIDAR

X4($99)



$99で売られているylidar-X4をAliexpressで購入しました。
モーターがむき出しです。

LIDAR-053 eai ydlidar x4 lidarレーザーレーダースキャナ測距センサモジュール10メートル5 k測距周波数eai YDLIDAR-X4

詳しい性能はメーカーのページを参照してください。

YLIDAR X4

PCはUSBケーブルからの給電だけで、Raspberry PiはUSBケーブルを2本使って電力を供給することで、動かせました。

G4($400)



比較として$400で売られているylidar-G4も購入しました。
黒い外装に収まっています。

LIDAR-769 eai ydlidar 4360レーザレンジファインダセンサモジュール測定と走査システム16メートル9 k ydlidar-gg4

詳しい性能はメーカーのページを参照してください。

YLIDAR G4

PCはUSB3.0からの電源供給だけで動かせました。
USB type-CからUSB3.0に変換されるケーブルで接続する形式ですが、USBケーブルを2本使って電力を供給すれば、Raspberry Piでも動かせました。

電源供給用のケーブル + 電源

PCはUSBからの電力だけでLIDARを動かせましたが、Raspberry PiはUSBからの電力だけでは不足するようで動かせませんでした。
そのため、それぞれのUSBの形状に合った電源供給用のUSBケーブルと電源を用意してください。

X4の場合はUSB microBのケーブルを使います。
G4の場合はUSB type-Cのケーブルを使います。

上記のケーブルと合わせて、スマートフォンの充電器など、USBで5Vを給電する電源を使います。

提供されるGUIプログラムで動作確認する方法

LIDARを作っているメーカーのサイトから、Toolsのダウンロードマークを押して、プログラムををダウンロードします。

YDLIDAR Downloads


Toolsとして提供されるプログラムは、X4もG4も同じようなので、どちらをダウンロードしても共有できます。

ダウンロードしたファイルを展開します。
cd ~/Downloads 
unzip Tools.zip

LIDARをPCに接続した状態でプログラムを実行します。
cd ~/Downloads/Tools/PointCloudViewer
chmod a+x PointCloudViewer_V02R02
./PointCloudViewer_V02R02

画面が表示されるので、接続しているLIDARの種類を選んで、確定を押します。
X4: $99びモーターがむき出しのLIDAR
G4: $400の背が低くて黒いLIDAR


表示される画面右上の再生ボタンを押すと、スキャンが始まります。


うまく動くと、LIDARの測定値を点として表す画面が表示されます。

X4 ($99)の様子です。


G4 ($400)の様子です。


G4の方が測定距離が長い上に粒度が細かいため、部屋の角がX4より鮮明に測定できているようでした。
動作音は、個体差があるかもしれませんが、G4よりX4の方が静かでした。

なお、このプログラムはIntelのCPU向けにビルドされているようで、Raspberry Piで実行しようとすると下記のエラーが出て実行できませんでした。
-bash: ./PointCloudViewer_V02R02: cannot execute binary file: Exec format error

Raspberry Piで動かす場合は、別に提供されているSDKをビルドするか、この後説明するROSのパッケージを利用する必要があるようです。

ROS + 提供されるプログラムで動かす方法

ROSとは、ロボットのプログラムを作りやすい環境を提供してくれるプログラムです。
ROS Melodicで動くことを確認しました。

ROS (Melodic)をインストール

ROSをインストールする方法は、これらのリンクが参考になると思います。

Ubuntu: Ubuntu install of ROS Melodic
Raspberry Pi: ROS(melodic)をRaspberry Pi + Raspbian(stretch)にインストールする方法

LIDARのプログラムを設置

ROS向けのLIDARのパッケージが公開されているので、それをROSのビルド対象ディレクトリに設置します。
cd ~/ros_catkin_ws/src
git clone https://github.com/EAIBOT/ydlidar.git

LIDARのドライバを設定

ドライバ設定スクリプトを実行します。
cd ~/ros_catkin_ws/src/ydlidar/startup
chmod 777 *
sudo sh initenv.sh

このスクリプト実行後、LIDARをPCに接続します。
LIDARをPCに接続したままスクリプトを実行した場合は、LIDARをPCから抜き差しするか、OSを再起動すると、ドライバが有効になります。

実行(CIで動作確認)

lidarの測定プログラムを動かします。
cd ~/ros_catkin_ws/src
catkin_make
source devel/setup.bash
roslaunch ydlidar lidar.launch

上記のroslaunchは動かしたまま。別のターミナルで/scanとして配信される情報を確認するコマンドを実行します。
rostopic echo /scan

うまく動くと、ターミナル上でLIDARの測定値を確認できます。


実行(Rvizで動作確認)

Rvizとは、ROSが提供している情報表示プログラムのひとつです。
デスクトップ版のROSをインストールしている場合、下記のコマンドでLIDARの出力をRvizを通して確認できます。
cd ~/ros_catkin_ws/src
catkin_make
source devel/setup.bash
roslaunch ydlidar lidar_view.launch

うまく動くと、RvizにLIDARの測定値が表示されます。


Raspberry PiのROSからも、X4とG4の値をRvizで確認できました。


まとめ

LIDARを使って、周囲の距離を測定できました。

何かの参考になれば嬉しいです。

3 件のコメント :

hary さんのコメント...

ラズベリーパイとydlidarは普通にUSBケーブルで繋いでいますか?
また、rosのパッケージがインストールできないのですが何が問題かわかりますか?

Asuki Kono さんのコメント...

> ラズベリーパイとydlidarは普通にUSBケーブルで繋いでいますか?
普通が何なのか分かりませんが、「Raspberry PiとLidarをUSBケーブル1本で接続すること」と仮定します。
だとすると、答えは「いいえ」です。
X4とG4の解説の後半に記述していますが、Raspberry Piで利用する場合は、信号用のUSBケーブル以外に電源供給用のUSBケーブルを接続しておかないと動きませんでした。

> また、rosのパッケージがインストールできないのですが何が問題かわかりますか?
「インストールできない」という情報だけで問題を特定するのは困難です。
下記の情報を共有してもらえれば、分かることがあるかもしれません。
- インストールしようとして実行したコマンド
- 出力されるログの重要そうな部分

Asuki Kono さんのコメント...

rosのインストールに関しては、こちらのページが参考になると思います。
ROS(melodic)をRaspberry Pi + Raspbian(stretch)にインストールする方法