最近在研究Kitti Odometry数据集,要做的一个事情是把velodyne中的.bin点云文件转成pcd并可视化。
本博客介绍用ROS pcl实现以上转换。
(备注:这里需要用到pcl_ros这个包,之前配置的ROS不知道为啥缺少了这个包,导致之后编译的时候一直报错,提示找不到pcl_rosConfig.cmake pcl_ros-config.cmake,之后卸载了ROS又重新安装了一下,就解决了!)
进入正文:
1.建立工作空间
打开终端,输入:
mkdir -p catkin_ws/src
2.创建程序包
cd catkin_ws/src
catkin_create_pkg kitti_velodyne pcl_ros roscpp
3.创建bin2pcd.cpp
在 kitti_velodyne文件夹中的src文件夹中创建一个.cpp文件,粘上以下代码:
#include <boost/program_options.hpp>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/common/point_operators.h>
#include <pcl/common/io.h>
#include <pcl/search/organized.h>
#include <pcl/search/octree.h>
#include <pcl/search/kdtree.h>
#include <pcl/features/normal_3d_omp.h>
#include <pcl/filters/conditional_removal.h>
#include <pcl/segmentation/sac_segmentation.h>
#include <pcl/segmentation/extract_clusters.h>
#include <pcl/surface/gp3.h>
#include <pcl/io/vtk_io.h>
#include <pcl/filters/voxel_grid.h>
#include <iostream>
#include <fstream>
using namespace pcl;
using namespace std;
namespace po = boost::program_options;
int main(int argc, char **argv){
///The file to read from.
string infile;
///The file to output to.