環境
この記事は以下の環境で動いています。
項目 | 値 |
---|---|
CPU | Core i5-8250U |
Ubuntu | 16.04 |
ROS | Kinetic |
インストールについてはROS講座02 インストールを参照してください。
またこの記事のプログラムはgithubにアップロードされています。ROS講座11 gitリポジトリを参照してください。
概要
LIDARはロボットの「目」として重要なセンサーです。しかしWebカメラなどに比べると効果で安くても10万円、高いと100万円を超します。その中で最近中国製の安い物が発売されています。今回はこの中でも100ドルを切るYDLIDAR X4
を使ってみます。
購入
Aliexpressで購入しました。値段は85ドルほどで1万円を切っています。注文してから18日間ほどして到着しました。Aliexpressで買うと大体2~3週間かかりますね。
最近はAmazonでも購入できます。
梱包・内容物
梱包はしっかりしていました。内容物は以下です。
- YDLIDAR本体
- USB変換基板(+ケーブル)
- 予備モーターベルト
- USBケーブル
- 固定用ねじ(M2.3)x5
- 合格証
YDLIDAR本体には6ピンのシリアルインターフェイスしかありません。変換基板を使うとUSBでアクセスできます。電源もUSBからの給電します。いちおう通信用とは別に給電用のUSBもついています。
動作テスト
公式リポジトリにサンプルプログラムがあるので、とりあえずLIDARを起動して動かすことができます。
とりあえず刺してみる
YDLIDAR<-(6ピンケーブル)->変換基板<-(USBケーブル)->PCと接続したところLIDARの回転は起こらずPCからは/dev/ttyUSB0
と見えました。ひとまずはここで接続を抜きます。
リポジトリのclone
公式からgithubで動作用のプログラムが提供されています。
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
という名前で見えるようにします。
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に入れても可視化されなくなりました。トピックは来ているのですが、時間関連の値が不正ではじかれるみたいです。以下のように該当の部分をコメントアウトするととりあえず表示されるようになります。
- 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度レーザー距離測定機)を動かしてみた