LoginSignup
13
14

More than 1 year has passed since last update.

ROS講座65 YDLIDARを使う

Last updated at Posted at 2018-09-23

環境

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

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

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

概要

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

YDLIDAR.png
YDLIDARのwebサイトより

購入

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

梱包・内容物

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

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

YDLIDAR中身.JPG

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トピックを見ることができます。これは手で持って部屋の中を写したものです。右側のひだはカーテンです。部屋の角もきれいに写っているのが見えます。
(たまに移ったり写らなかったりするのはちょうど手の高さの家具があってそれが角度や高さによって見えたり見えなかったりするだけです。)
hard_ydlidar.gif

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;

オプション

よく使うのが以下のオプションです。

  • reversion: 出力が180deg回転する。正面が前後逆になる。
  • inverted: 出力が反時計回りの鏡写しのようになります。LIDARを上下逆に取り付けた時に使う。

参考

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

目次ページへのリンク

ROS講座の目次へのリンク

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14