はじめに
Unitree L1 LiDARをrvizを使用せずに使えるようにする方法を開発しました。(ROSのみ)
リポジトリ
詳細な使い方については、GitHubで公開しているREADMEを読んでください。
問題点
rvizを使用せずにLiDARデータを表示しようとすると、
run_without_rviz.launch
を実行しても、rvizで表示されるときのようにはなりません。
下記の画像はその一例です。
変更点
この問題を解決するために、unitree_lidar_ros_without_rviz.h
を追加し、次の画像のように表示されるよう改善しました。
rvizでは点群を一定時間保持し可視化しています。そのため今回の改善では、点群をパブリッシュする段階で複数の点群を保持し、まとめてパブリッシュするように変更しました。
点群をさらに増やすには、unitree_lidar_ros_without_rviz.h
の192行目と193行目の数字を増やしてください。対象のコードは以下の部分です。
unitree_lidar_ros_without_rviz.h
if(cloudQueue_.size() > 10) {
while(cloudQueue_.size() > 10) {
cloudQueue_.pop_front();
}
}
実行
ビルドまでの手順は変わりません。
実行は以下の通りにどちらも可能です。
- rvizを用いる場合:
source devel/setup.bash
roslaunch unitree_lidar_ros run.launch
- rvizを用いない場合:
source devel/setup.bash
roslaunch unitree_lidar_ros run_without_rviz.launch.launch
おわりに
この改善はROSに対応していますが、ROS2やunitree_lidar_sdkには対応していません。提供しているコードを参考に、適宜変更を加えてください。
コードはこちら: