ros下使用PCL教程

  • ROS下使用PCL步骤
    • 1. 创建工作空间
    • 2. 创建ROS包
    • 3. 创建代码ROS代码框架
    • 4. 配置CMakeLists.txt文件
    • 5. 从PCL教程中下载pcl处理代码,放到ROS代码框架中(放在回调函数中)。

最近打算做一点点云数据处理相关的工作,所以就用到PCL(点云库),ubantu已经自己带了PCL库,我用的是uantu20.04.4+Ros noetic+pcl 1.10+vscode。PCL官网提供的教程是单独PCL在cmke编译的,要在ros框架下使用则需要将PCL官方教程与ROS匹配。ROS官方提供教程。以下是在ROS下跑通第一个PCL程序整理:

ROS下使用PCL步骤

1. 创建工作空间

mkdir -p ~/PCL_ws/src
cd ~/PCL_ws
catkin_make
code .#(在vscode中打开)

2. 创建ROS包

打开vscode后直接创建ROS包。
查看vscode中创建ROS包
也可以使用命令行创建

catkin_creat_pkg my_PCL_tutorial PCL_conversions PCL_ros roscpp sensor_msgs

配置package.xml文件

  <build_depend>libpcl-all-dev</build_depend><exec_depend>libpcl-all</exec_depend>

3. 创建代码ROS代码框架

src文件夹下创建cpp文件src/pcl_text.cpp,不会参考上一个链接[查看vscode中创建ROS包]。

   1 #include <ros/ros.h>2 // PCL specific includes3 #include <sensor_msgs/PointCloud2.h>4 #include <pcl_conversions/pcl_conversions.h>5 #include <pcl/point_cloud.h>6 #include <pcl/point_types.h>7 8 ros::Publisher pub;9 10 void 11 cloud_cb (const sensor_msgs::PointCloud2ConstPtr& input)12 {13   // Create a container for the data.14   sensor_msgs::PointCloud2 output;15 16   // Do data processing here...17   output = *input;18 19   // Publish the data.20   pub.publish (output);21 }22 23 int24 main (int argc, char** argv)25 {26   // Initialize ROS27   ros::init (argc, argv, "my_pcl_tutorial");28   ros::NodeHandle nh;29 30   // Create a ROS subscriber for the input point cloud31   ros::Subscriber sub = nh.subscribe ("input", 1, cloud_cb);32 33   // Create a ROS publisher for the output point cloud34   pub = nh.advertise<sensor_msgs::PointCloud2> ("output", 1);35 36   // Spin37   ros::spin ();38 }

4. 配置CMakeLists.txt文件

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

5. 从PCL教程中下载pcl处理代码,放到ROS代码框架中(放在回调函数中)。

   5 void cloud_cb (const sensor_msgs::PointCloud2ConstPtr& cloud_msg)7 {8   // Container for original & filtered data9   pcl::PCLPointCloud2* cloud = new pcl::PCLPointCloud2; 10   pcl::PCLPointCloud2ConstPtr cloudPtr(cloud);11   pcl::PCLPointCloud2 cloud_filtered;12 13   // Convert to PCL data type14   pcl_conversions::toPCL(*cloud_msg, *cloud);15 16   // Perform the actual filtering17   pcl::VoxelGrid<pcl::PCLPointCloud2> sor;18   sor.setInputCloud (cloudPtr);19   sor.setLeafSize (0.1, 0.1, 0.1);20   sor.filter (cloud_filtered);21 22   // Convert to ROS data type23   sensor_msgs::PointCloud2 output;24   pcl_conversions::fromPCL(cloud_filtered, output);25 26   // Publish the data27   pub.publish (output);28 }

ROS下使用PCL库教程相关推荐

  1. ROS下运行ORB-SLAM实例教程

    实验环境ubuntu 14.04+ros indigo Step1: 配置环境变量 $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src 在'src'目录中可 ...

  2. ROS初学笔记 - C++11与PCL库冲突问题

    作者: zhch_pan 原文链接:https://www.cnblogs.com/zhchp-blog/p/7249487.html/ 出处: 博客园 转载说明:如有侵权,请联系我删除,谢谢! RO ...

  3. PCL库官方教程01

    PCL 库概览 介绍 PCL 库的组件,简短说明各个模块的功能及其之间的交互. 概述 PCL 被拆分为多个模块化库.主要模块如下图所示: Filters 滤波器 下图给出了一个去除噪声的例子.由于测量 ...

  4. Ubuntu下Qt中使用pcl库

    pcl依赖及安装 1.一般不用到qt或vtk显示点云 ###pcl通过ppa安装步骤 //这样安装,目前默认安装的是pcl1.7.2 sudo add-apt-repository ppa:v-lau ...

  5. python安装第三方库win10_音频处理 windows10下python三方库librosa安装教程

    librosa是处理音频库里的opencv,使用python脚本研究音频,先安装三方库librosa. 如下通过清华镜像源安装librosa: pip install -i https://pypi. ...

  6. python idle运行anaconda_在Python IDLE 下调用anaconda中的库教程

    大家都知道,Anaconda是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.下载了anaconda我们可以很方便的随时调用这里面的库. 原先我自己在Py ...

  7. python安装第三方库re_音频处理 windows10下python三方库librosa安装教程

    librosa是处理音频库里的opencv,使用python脚本研究音频,先安装三方库librosa. 如下通过清华镜像源安装librosa: pip install -i https://pypi. ...

  8. pythonidle安装第三方库_在Python IDLE 下调用anaconda中的库教程

    在Python IDLE 下调用anaconda中的库教程 大家都知道,Anaconda是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.下载了anaco ...

  9. 运动控制卡的函数库与Linux,运动控制卡应用开发教程之ROS(下)

    在正式学习之前,我们先了解一下正运动技术的运动控制卡ECI2418和ECI2618.这两款产品分别是4轴,6轴运动控制卡. ECI2418支持4轴脉冲输入与编码器反馈,板载24点输入,16点输出,2A ...

最新文章

  1. 无法连接共享打印机处理办法
  2. 如何求解单边z变换_的单边Z变换。.ppt
  3. hdu1285 拓扑排序(裸)
  4. js 根据公历日期 算出农历_一招教会你公历换算成农历,要不要试试看
  5. python 小说爬虫_Python实现的爬取小说爬虫功能示例
  6. 获取并编译linux源码,linux – 从源代码编译软件:如何收集依赖项列表?
  7. 五一档票房超8.8亿元!张艺谋新片仅第二
  8. 正确中断java线程
  9. IE8 Beta2 已经放出来了
  10. Python Imaging Library: ImageColor Module(图像颜色模块)
  11. Linux 下 4 种实时监控日志文件的方法,你都会用吗?
  12. RT-Thread学习笔记|74HC595驱动数码管详解
  13. CSS 代码语法 代码注释
  14. 台式机电源选购资料调研+为什么50%的时候负载功率最大+80PLUS的解释
  15. j2sdk_5_0.exe的使用
  16. 机器学习笔记 - 什么是先验算法(Apriori Algorithm)?
  17. 四苯基卟啉(TPP);硝基卟啉(TPP-NOz);锌卟啉(TPP-Zn)的合成路线/实物图/结构式-齐岳供应
  18. VMware克隆虚拟机后修改UUID、MAC地址、IP和主机名
  19. 分布式电商项目十四:Vue前端框架简介及使用
  20. pictures for my GitHub -- Convenient Pic's URL offering

热门文章

  1. 常用的Web服务架构
  2. “图发展”与“保安全”:大数据今后怎么玩?
  3. 如何搭建一个好的知识库管理系统?
  4. Unity官方中文文档
  5. 你知道linux的复制命令吗?cp
  6. Arcgis pro中Arcpy对Excel文件进行克里金插值
  7. Android network — DHCP协议详解
  8. win7 启动速度慢 IDE模式 解决办法
  9. logo设计之颜色搭配的技巧和内涵
  10. 复旦微电子fpga数据手册_专注FPGA图像加速领域 深维科技跨入发展快车道