LiDAR、ずいぶんとこなれてきたとは言え、まだまだ高嶺の花ですね。
その中で Amazon で販売されている USB接続の LiDAR がどうなのかちょっと気になったので購入し、動作確認まで試してみました。
WayPonDEV RPLIDAR A1M8
https://amzn.asia/d/gqZj4f4
レンジは ~ 12.0m、自己学習や遊び用途であれば十二分でしょう。
自動車などの移動体に使用するのは難しいかもしれませんね。
I/Fは、UARTとのことで、シリアルだと115.2kbps程度の帯域で知れているので、点群のデータ量がそもそも控えめと思われます。
他のサイトではラズパイで試されている方がいますが、当方はx64のUbuntuマシンで確認しました。
デバイス構成を見ると、
-
使用したH/W及びS/W
- PC: x64 マシン
- LiDAR: WayPonDEV RPLIDAR A1M8
- OS: Ubuntu 22.04
- Framework: ROS2 Humble Desktop (Dockerイメージ)
-
まずはデバイスが認識するか確認
- WayPonDEV を PC に接続する
- USBポートが認識されていることを確認する
ls /dev/ttyUSB*
今回は /dev/ttyUSB1 として認識されていました。
- デバイスの権限の設定
以下のコマンドでポートの権限を変更します。
sudo chmod 666 /dev/ttyUSB1 #デバイス名は上で確認したもの
- ドライバの導入
WayPonDEV RPLIDAR にはすでにROS2用のドライバが存在し、導入が極めて容易です。
いい時代ですね。
下記コマンドを実行し、rplidar_ros2リポジトリをクローンしましょう。
# Docker内にて
cd ~/ros2_ws/src
git clone https://github.com/Slamtec/rplidar_ros2.git
cd ..
colcon build --symlink-install
- ノードの起動
- rplidarのローンチファイルを各自の環境に合わせて編集します。
nano ./ros2_ws/src/rplidar_ros2/launch/rplidar.launch.py
Node(
package='rplidar_ros2',
executable='rplidar_composition',
name='rplidar_node',
parameters=[{
'serial_port': '/dev/ttyUSB1', # デバイス名は上で確認したもの
'serial_baudrate': 115200, # ボーレート
'frame_id': 'laser_frame', # フレーム ID
'inverted': False,
'angle_compensate': True,
}],
output='screen'
),
- ノードを起動する
source ~/ros2_ws/install/setup.bash
ros2 launch rplidar_ros2 rplidar.launch.py
- トピックがPublishされていることの確認
LiDARから点群がPublishされていることを確認してみましょう。
トピック名は "/scan" です。
ros2 topic list
ros2 topic echo /scan
ros2 bag record /scan # Foxgloveなどの点群を確認するツールで見るために保存するのもあり
-
点群を見てみる
1万円ちょいで買える LiDAR としてはまあまあなんではないでしょうか。
Autowareなどに組み込んで遊んでみるのも楽しいかもしれませんね。 -
関連動画(YouTube)
ご覧頂きありがとうございました。