はじめに
最近流行りの小さいLIDARことLD19をROS 2 Humbleで利用する際の手順記録です.
前提
ROS 2 Humbleの環境構築が済んでいること
使用機器など
- LIDAR: LD19 (スイッチサイエンス販売ページ)
- OS: Ubuntu 22.04
- ROS: ROS 2 Humble
ldrobot-lidar-ros2のビルド
基本的にはREADMEの手順に従えば良い.
リポジトリのクローン
cd ~/ros2_ws
git clone https://github.com/Myzhar/ldrobot-lidar-ros2.git
udevルールの設定
cd ~/ros2_ws/src/ldrobot-lidar-ros2/scripts/
./create_udev_rules.sh
ls /dev/tty*
/etc/udev/rules.d
が見つからない旨のエラーが出た場合は以下を実行してから再度↑のコマンドを叩く.
sudo mkdir -p /etc/udev/rules.d
sudo apt install udev
関連パッケージのインストール
sudo apt update
sudo apt install libudev-dev
sudo apt install ros-${ROS_DISTRO}-diagnostic-updater
sudo apt install ros-${ROS_DISTRO}-nav2-util
ビルド
cd ~/ros2_ws/
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release
以下のようにエラーなく3 packages finished
で終わればビルド成功です.
Starting >>> ldlidar_component
Finished <<< ldlidar_component [0.18s]
Starting >>> ldlidar_node
Finished <<< ldlidar_node [0.15s]
Starting >>> ldlidar
Finished <<< ldlidar [0.09s]
Summary: 3 packages finished [0.65s]
LD19を使う
ビルド結果の読み込み
以下のコマンドでビルド結果へパスを通す.
cd ~/ros2_ws/
source install/setup.bash
デバイス名の設定を変更
設定ファイルを開く.vim以外のエディタに読み替えてもよい.
cd ~/ros2_ws/
vim install/ldlidar_node/share/ldlidar_node/params/ldlidar.yaml
comm
以下のserial_port
の値を実際に接続されているデバイス名に変更する.以下の例では/dev/ttyUSB0
に変更している.
デバイス名はls /dev/tty*
などのコマンドで確認できる.LD19を抜き差しする前後でls /dev/tty*
を叩き,増減した差分がLD19のデバイス名である(はず).
/**:
ros__parameters:
general:
debug_mode: true # true to activate debug messages
comm:
serial_port: '/dev/ttyUSB0' # serial port name
baudrate: 230400 # serial baudrate
timeout_msec: 1000 # data communication timeout in msec
(以下略)
LIDARノードの実行
以下のコマンドで設定ファイルを読み込みながらLIDARのノードを起動できる.
ros2 run
での起動は推奨されていない.
ros2 launch ldlidar_node ldlidar.launch.py
LIDARノードをactivateする
前述のコマンドで実行した直後のldlidar_node
はinactivate状態であるため,以下のコマンドでactivateすることでスキャン結果のtopicがpublishされるようになる.tmuxの別ペインやterminalの別タブなどで以下を実行する.
ros2 lifecycle set /ldlidar_node configure
ros2 lifecycle set /ldlidar_node activate
rviz2の実行
ros2 launch ldlidar_node ldlidar_rviz2.launch.py
以下のようにスキャンした点群が表示されれば成功です!お疲れ様でした.
(画像は見やすいようにSize(Pixels)
をデフォルトの3から10に変更しています)