ROSでVelodyne LiDARを運用する際の設定
Velodyne使用時に困ってたこと
Velodyne LiDARのROSドライバーを使用しVelodyne LiDARを運用していた際,個人的に詰まってしまったことのメモ書きです.
使用環境
OS | Ubuntu 16.04 |
kernel | 4.15 |
ROS | kinetic |
Velodyne-ros | ros-kinetic-velodyne |
Velodyne LiDAR | VLP-16-HiRes |
LiDARを角度変換したときの点群がおかしい
Velodyne LiDAR VLP-16-HiRes(以下VLP-16-HiRes)を角度変換できる雲台に設置し,角度を変えながらの運用を試みたところ,以下の問題が発生しました.
以下の画像は,VLP-16-HiResで取得した点群データをrvizで可視化したものです.
VLP-16-HiResの角度が水平のとき
VLP-16-HiResの角度をピッチ角に45 deg傾斜させたとき
2枚目の画像は,VLP-16-HiResをピッチ角に45 deg角度変換したときの点群データです.斜めに表示されているのは床を捉えた点群データです.正しく3次元座標を計測できていれば,床の点群は水平に表示されているはずです.
原因:キャリブレーションファイル設定の不備
原因としては,キャリブレーションファイルを指定する設定に不備がありました.
Velodyne LiDARは,LiDARと一緒にUSBが付属されており,USBの中にLiDARのキャリブレーションデータが.yamlファイルで入れられています.
このキャリブレーションデータはLiDARの型式によって異なり,同じVLP-16でも通常版と高解像度版(HiRes)で違うキャリブレーションデータを使用する必要があります.
角度変換時に点群データの角度がおかしくなるのは,VLP-16-HiRes(VLP-16の高解像度版)を使用しているにも関わらず,VLP-16のキャリブレーションデータを用いていたことが原因でした.
ROSドライバーでVelodyne LiDARを運用する場合の,キャリブレーションデータの設定方法ですが,velodyne_pointcloud
パッケージ内のlaunchファイルを編集することで設定します.
例えば,VLP-16系列を動かす場合,VLP16_points.launch
を編集します.
launchファイル内のcalibration
に使うLiDARに適したキャリブレーションデータのパスを指定します.
1 <!-- -*- mode: XML -*- -->
2 <!-- run velodyne_pointcloud/CloudNodelet in a nodelet manager for a VLP-16 -->
3
4 <launch>
5
6 <!-- declare arguments with default values -->
7 <arg name="calibration" default="<ここに適したキャリブレーションデータのパスを設定>"/>
8 <arg name="device_ip" default="" />
9 <arg name="frame_id" default="velodyne" />
....
これで,角度変換をしても点群データの座標が適切に取得されるようになりました.
Author And Source
この問題について(ROSでVelodyne LiDARを運用する際の設定), 我々は、より多くの情報をここで見つけました https://qiita.com/k-Mata/items/f66010b771a62e85da2d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .