ROS講座65 YDLIDARを使う


環境

この記事は以下の環境で動いています。

項目
CPU Core i5-8250U
Ubuntu 16.04
ROS Kinetic

インストールについてはROS講座02 インストールを参照してください。
またこの記事のプログラムはgithubにアップロードされています。ROS講座11 gitリポジトリを参照してください。

概要

LIDARはロボットの「目」として重要なセンサーです。しかしWebカメラなどに比べると効果で安くても10万円、高いと100万円を超します。その中で最近中国製の安い物が発売されています。今回はこの中でも100ドルを切るYDLIDAR X4を使ってみます。


YDLIDARのwebサイトより

購入

Aliexpressで購入しました。値段は85ドルほどで1万円を切っています。注文してから18日間ほどして到着しました。Aliexpressで買うと大体2~3週間かかりますね。

梱包・内容物

梱包はしっかりしていました。内容物は以下です。

  • YDLIDAR本体
  • USB変換基板(+ケーブル)
  • 予備モーターベルト
  • USBケーブル
  • 固定用ねじ(M2.3)x5
  • 合格証

YDLIDAR本体には6ピンのシリアルインターフェイスしかありません。変換基板を使うとUSBでアクセスできます。電源もUSBからの給電します。いちおう通信用とは別に給電用のUSBもついています。

動作テスト

公式リポジトリにサンプルプログラムがあるので、とりあえずLIDARを起動して動かすことができます。

とりあえず刺してみる

YDLIDAR<-(6ピンケーブル)->変換基板<-(USBケーブル)->PCと接続したところLIDARの回転は起こらずPCからは/dev/ttyUSB0と見えました。ひとまずはここで接続を抜きます。

リポジトリのclone

公式からgithubで動作用のプログラムが提供されています。

リポジトリのclone
cd ~/ros_catkin_ws/src
git clone https://github.com/EAIBOT/ydlidar.git
cd ~/ros_catkin_ws
catkin_make

udevの追加

先ほど/dev/ttyUSB0と見えていましたが、これではほかにもUSBシリアル変換チップを混ぜるとどれがどれだか分からなくなります。udevを追加することでydlidarにつながっているシリアルポートを/dev/ydlidarという名前で見えるようにします。

udevの追加
cd ~/ros_catkin_ws/src/ydlidar/startup
chmod 777 *
sudo sh initenv.sh

ls /dev/ydlidarで見えます。

実行

roslaunch ydlidar lidar_view.launch

コマンドを打つとYDLIDARが回転を始めます。Rvizでscanトピックを見ることができます。これは手で持って部屋の中を写したものです。右側のひだはカーテンです。部屋の角もきれいに写っているのが見えます。
(たまに移ったり写らなかったりするのはちょうど手の高さの家具があってそれが角度や高さによって見えたり見えなかったりするだけです。)

ydliderのscan topicがRvizで表示されない

2018年10月あたりのバージョンアップからscanをRvizに入れても可視化されなくなりました。トピックは来ているのですが、時間関連の値が不正ではじかれるみたいです。以下のように該当の部分をコメントアウトするととりあえず表示されるようになります。

ydlidar/src/ydlidar_node.cppの修正(git_diffの131行目あたり)
-            scan_msg.scan_time = scan.config.scan_time;
-            scan_msg.time_increment = scan.config.time_increment;
+            //scan_msg.scan_time = scan.config.scan_time;
+            //scan_msg.time_increment = scan.config.time_increment;

参考

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

目次ページへのリンク

ROS講座の目次へのリンク