LoginSignup
4
5

More than 3 years have passed since last update.

ROSでVelodyne LiDARを運用する際の設定

Last updated at Posted at 2020-05-03

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の角度が水平のとき

VID_20191231_211442_Moment0.jpg

VLP-16-HiResの角度をピッチ角に45 deg傾斜させたとき

VID_20191231_211442_Moment.jpg

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に適したキャリブレーションデータのパスを指定します.

VLP16_points.launch
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" />
....

これで,角度変換をしても点群データの座標が適切に取得されるようになりました.

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5