やったこと
RPLidar A1M8をROS2で動かしてみました。意外とROS2でのやり方は情報がなかったのでまとめてみます。
環境
- RPLidar A1M8
- Ubuntu 22.04.2 LTSをインストールしたPC
- zsh
- ROS2 Humble
基本的にはsllidar_ros2リポジトリのインストール方法通りに進めれば問題ないですが、つまづいたポイントだけ書きます。
1) ROS2インストール
ROS2 Humble Binaryを入手してROS2 Humble Binary Ubuntuへのインストールのやり方に沿えばいいのですが、以下のコマンドでエラーがでたのでオプションを追加しました。
rosdep install --from-paths ~/ros2_humble/ros2-linux/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastrtps rti-connext-dds-6.0.1 urdfdom_headers"
rosdep install --from-paths ~/ros2_humble/ros2-linux/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastrtps rti-connext-dds-6.0.1 urdfdom_headers" --rosdistro humble
ROS2 Humble Configurationがsllidar_ros2リポジトリのインストール手順にあるのですが、環境変数の確認だけなのでやらなくても動作はします。
シェルにzshを使ったので(なんかかっこいいから?)、以下のコマンドでROS2環境をセットアップする必要があります。
source ~/ros2_humble/ros2-linux/setup.zsh
2) ROS2ワークスペース作成
これはROS2 Humble Workspaceの作り方のやり方をそのままやればよく、特につまづくことはなかったです。
3) sllidar_ros2パッケージインストール
sllidar_ros2リポジトリのやり方に従って進めますが「3.Package environment setup」はzshのスクリプトを使います。
source ./install/setup.zsh
4) RPLidar A1M8をPCに接続
一点つまづいたのが、最初使っていたマイクロUSBケーブルがダメだったようで正しくPCに認識されませんでした。ケーブルを交換すると中間の基板のLEDが点灯して正常に /deb/ttyUSB0 として認識されました。ROS2がアクセスするためにパーミッションを変更する必要があります。
sudo chmod 666 /dev/ttyUSB0
Lidarのモーターがウィンウィン動くので初めてだとびっくりするかもしれません。
5) rvizで表示
以下のコマンドで rviz が現れて正常動作していれば部屋の形状が赤い点で現れると思います。
ros2 launch sllidar_ros2 view_sllidar_launch.py
うぉーちゃんと動いたー!という感動が得られます。
参考
RPLidar A1 M8で部屋の地図を作成しよう!
SLAMTEC公式
所感
まあ案外楽に動いたなという印象です。マイクロUSBケーブルが腐っていたことになかなか気が付かなかった。。。Lidarのデータは取れるようになったので、今度はマップでも作ってみようと思います。