How to use PCL
How to convert from ROS msg to PCL Point Cloud
ROSでPCL関連のパッケージはperception_pclに集まっています. Tutorialsに簡単な使い方が記載されていますが, ここでは型に注目してください.
ROSでは点群はsensor_msgs/PointCloud2型になっていますが,
PCLで点群の処理を行うためにはpcl::PointCloud型である必要があります.
このための相互変換には,
pcl::fromROSMsg,pcl::toROSMsgを使います.
How to analyze Point Cloud format
sensor_msgs/PointCloud2型から点群の素性を探るためには,
width,height,fieldsを見てみましょう.
前2つはそのままですが,次のfieldsは事前に調べておくと有用です.
その点群がどのような情報を持っているかを調べられます.
例えば,ps4eyeの点群のfieldsを調べてみましょう.
rostopic echo /stereo/points2/fields
とすると,以下のような情報が得られます.
-
name: x
offset: 0
datatype: 7
count: 1
-
name: y
offset: 4
datatype: 7
count: 1
-
name: z
offset: 8
datatype: 7
count: 1
-
name: rgb
offset: 16
datatype: 7
count: 1
---
これは,ps4eyeの点群がx,y,zの位置情報と,
rgbの色情報を持っていることを表しています.
Common PointCloud2 field namesに種類が記載されていますが,
この他にも点群は法線情報normal_{x,y,z}などを持つことができます.