12
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ROS2でLD06 LiDARを使う

Last updated at Posted at 2022-09-23

はじめに

LD06 LiDARをPCのUSBポートにつないでROS2環境で動かしてみた。

LD06 LiDARはMini PupperのLiDARに採用されており、非常に小さくコンパクトであることが特徴。
USB-シリアル変換器を使うことで、Raspberry Pi 4だけでなく普通のPCでも使用することができる。

実行環境

以下の環境で動作確認しています。

CPU Ryzen5
OS Ubuntu22.04LTS
ROS2 Humble

ROS2パッケージのインストール

こちらのROS2パッケージを使用

mkdir -p ~/ros2_ws/src
cd ros2_ws/ 
git clone -b ros2 https://github.com/linoroot/ldlidar src/ldlidar
rosdep update && rosdep install --from-path src --ignore-src -y
colcon build
source install/setup.bash

準備する物

  • LD06 LiDAR本体
  • USB-シリアル変換基板
  • USB micro-Bケーブル
  • ROS2がインストールされたPC

筆者はRSで購入したLiDAR本体にaliexpressで購入したUSB-シリアル変換基板を使用した。

Ekb2iGdf.jpg

実行

USBポートに実行権限を付与

sudo chmod 777 /dev/ttyUSB0

永続的に使用する場合、dialoutグループに追加する

sudo gpasswd --add $USER dialout

ROS2ノードの実行

source ~/ros2_ws/install/setup.bash
ros2 launch ldlidar ldlidar.launch.py

portを指定する場合(デフォルトは/dev/ttyUSB0)

ros2 launch ldlidar ldlidar.launch.py serial_port:=/dev/ttyUSB1

エラーが出なければ成功

ros2 launch ldlidar ldlidar.launch.py
[INFO] [launch]: All log files can be found below /home/porizou/.ros/log/2022-09-23-04-18-08-388939-porizou-Lenovo-IdeaPad-S540-14API-12039
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ldlidar-1]: process started with pid [12040]
[ldlidar-1] [INFO] [1663874288.598305955] [rclcpp]: Autodetecting serial port
[ldlidar-1] [INFO] [1663874288.623736308] [rclcpp]: /dev/ttyUSB0 CP2102 USB to UART Bridge Controller
[ldlidar-1] [INFO] [1663874288.623796246] [rclcpp]: Using port /dev/ttyUSB0
[ldlidar-1] [INFO] [1663874288.641227783] [rclcpp]: LiDAR_LD06 started successfully

LaserScanトピックの確認

ros2 topic echo /scan
header:
  stamp:
    sec: 1663890733
    nanosec: 93872047
  frame_id: laser
angle_min: 0.0
angle_max: 6.2831854820251465
angle_increment: 0.013947107829153538
time_increment: 0.0
scan_time: 0.0
range_min: 0.004999999888241291
range_max: 15.0
ranges:
- 3.2829999923706055
- 3.2829999923706055
- 3.2829999923706055
- 3.2679998874664307
- 3.2829999923706055

rvizでLaserScanを見る

rviz2

rviz2を起動してFixedFramelaserを入力、ADDからLaserScanを選択してTopic名は /scanを選ぶと点群が表示される。

rviz_screenshot_2022_09_23-04_24_38.png

変更可能なパラメータ

以下launch.pyから変更できるパラメータ

パラメータ デフォルト値
serial_port USBのシリアルポート /dev/ttyUSB0
topic_name LaserScanのトピック名 scan
lidar_frame LaserScanのフレームID laser
range_threshold これより小さいデータはNaNにする 0.005

おわりに

LD06 LiDARを使ってみて、他の1万円代の安いLiDARと比べて以下の点が優れていると感じた。

  • 回転部が露出していないので安心
  • intensity(強度)データが取得できる
  • サイズが小さいので、小型のロボットにも搭載しやすい

今後、小型の自律移動ロボットに使うLiDARとして非常に有力な選択肢になるだろう。

その他

ROS2 Foxy環境でlaunchファイル実行時にエラーが出たので、
launch/ldlidar.launch.pyの11行目を以下のように変更する。

ldlidar.launch.py
-            default_value='',
+            default_value='/dev/ttyUSB0',

参考

12
7
1

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
12
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?