はじめに
こんにちは、kazuです。
少し前にUnitreeの4D LiDARなるものを(半分衝動)購入したので実際に遊んでみたいと思います
仕様
- ROS 1, ROS 2対応
- 12V駆動
- USB type-Cで接続
- LOAM(LiDAR Odometry and Mapping)はROS 1のみ
- 本体がくるくる回るタイプ(メカニカルスキャン)
- 角度は360°×90°
- 0.05m〜30m
- 21600 points/s
- imu内蔵
- 230gでめっちゃ軽い!
- お値段5万円〜 (安すぎ)
- 変な見た目
導入
今回はUbuntu22.04,ROS 2 humbleで動かしたいと思います
1. SDKの導入
以下コマンドでSDKを入れます
cd
git clone https://github.com/unitreerobotics/unilidar_sdk.git
cd unilidar_sdk/unitree_lidar_sdk
mkdir build
cd build
cmake .. && make -j2
依存関係がないので正常なC++ならすんなり通ると思います
2. ROS2 pkgの導入
ビルド前にUSBの設定だけしちゃいます
LiDAR接続後以下コマンドでどこにつながったか確認します
$ ls /dev/ttyUSB*
/dev/ttyUSB0
今回はttyUSB0でした。
cd
cd unilidar_sdk/unitree_lidar_ros2
任意のテキストエディタで ./src/unitree_lidar_ros2/launch/launch.py
の15行目を変更します
できたら保存して、unilidar_sdk/unitree_lidar_ros2
(srcがある所)で以下を実行します
colcon build
source install/setup.bash
実行
電源をいれるとわかりますがぷるぷるします
ros2 launch unitree_lidar_ros2 launch.py
rviz2等で確認します
Decay time = 0
Decay time = 0.5
Decay time = 1.0
Decay time = 10.0
また、launch.pyの cloud_scan_numを1に設定しDecay time=0にすると面白いことができます
検証結果
- 点群量が少ない!
- 点群中級者なら気づいたかもしれませんが、縦のラインで点取得してて面白い
- ROS 2で自己位置推定できないのは悲しいのでいつかチャレンジしたい
- ルンバとかの遅いロボットなら問題なさそう
- ぷるぷるする
- 遊び用3D LiDARとしてはコスパ最強!