PCL(点云库)学习(一)

最近在学习SLAM(同时定位与地图构建),因此顺带学习了一下,PCL(Point Cloud Library,点云库)。

使用的操作系统为ROS(机器人操作系统),由于ROS集成了opencv和pcl,所以直接运行了PCL的示例代码。

下面是运行步骤、示例代码以及运行结果:

运行步骤:

cd到catkin_ws/src目录下

cd catkin_ws/src

创建package

catkin_create_pkg chapter6_tutorials pcl_conversions pcl_ros pcl_msgs sensor_msgs

cd到chapter6_tutorials目录下

cd chapter6_tutorials

创建src目录并cd到该目录下

mkdir src

cd src

创建pcl_sample.cpp文件,并输入如下代码

gedit pcl_sample.cpp

#include<ros/ros.h>
#include<pcl/point_cloud.h>
#include<pcl_ros/point_cloud.h>
#include<pcl_conversions/pcl_conversions.h>
#include<sensor_msgs/PointCloud2.h>


int main(int argc,char** argv)
{
ros::init(argc,argv,"pcl_sample");
ros::NodeHandle nh;
ros::Publisher pcl_pub = nh.advertise<sensor_msgs::PointCloud2>("pcl_output",1);
sensor_msgs::PointCloud2 output;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
cloud->width = 100;
cloud->height= 1;
cloud->points.resize(cloud->width*cloud->height);

pcl::toROSMsg(*cloud,output);


pcl_pub.publish(output);
ros::spinOnce();
return 0;
}

打开chapter6_tutorials目录下的CMakelist.txt,并增加如下内容:

寻找系统里面的PCL库

 

find_package(PCL REQUIRED)
include_directories(include ${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS}

生成可执行文件和链接相应的库

add_executable(pcl_sample src/pcl_sample.cpp)
target_link_libraries(pcl_sample ${catkin_LIBRARIES} ${PCL_LIBRARIES})

到 catkin_ws目录下,

运行catkin_make

打开新的终端:

运行 roscore

注册程序

source ./devel/setup.bash

运行节点

rosrun chapter6_tutorials pcl_sample

以上就是运行pcl的过程。

 

欢迎关注我的公众号:

编程技术与生活(ID:hw_cchang)

cchangcs CSDN认证博客专家 C++/Go后台
微信公众号:编程技术与生活(hw_cchang)
软件工程本硕毕业于武汉大学,现就职于某大厂。
从事过Java Web、Android、CV、深度学习开发,现主要从事CPP/Go后台开发。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值