ubuntu for ROS安装PCL

1.下载源码

method 1:

安装好ros后,在catkin-ws/src目录下载pcl:
 

git clone https://github.com/PointCloudLibrary/pcl.git

method 2:

将下载完成的pcl文件拷贝到catkin_ws/src目录下,

2.建立build目录编译

在pcl文件中建立build目录

$ mkdir build && cd build

进行编译

$ cmake -DCMAKE_BUILD_TYPE=None -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON .. 

$ make -j2

$ sudo make install

3.在pcl目录下的CmakeList.txt中添加:

find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})在这里插入代码片

然后catkin_make编译即可

 

4.PCL是否安装成功测试:

在home下进入pcl文件夹,新建文件夹pcl_test,进入pcl_test文件夹,新建文档并命名为pcl_test.cpp,继续新建文档并命名为CMakeLists.txt,其中,pcl_test.cpp文档内的代码如下:

#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
 
 
int main(int argc, char **argv) {
    std::cout << "Test PCL !!!" << std::endl;
    
    pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
    uint8_t r(255), g(15), b(15);
    for (float z(-1.0); z <= 1.0; z += 0.05)
    {
      for (float angle(0.0); angle <= 360.0; angle += 5.0)
      {
	pcl::PointXYZRGB point;
	point.x = 0.5 * cosf (pcl::deg2rad(angle));
	point.y = sinf (pcl::deg2rad(angle));
	point.z = z;
	uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
		static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
	point.rgb = *reinterpret_cast<float*>(&rgb);
	point_cloud_ptr->points.push_back (point);
      }
      if (z < 0.0)
      {
	r -= 12;
	g += 12;
      }
      else
      {
	g -= 12;
	b += 12;
      }
    }
    point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
    point_cloud_ptr->height = 1;
    
    pcl::visualization::CloudViewer viewer ("test");
    viewer.showCloud(point_cloud_ptr);
    while (!viewer.wasStopped()){ };
    return 0;
}

CMakeLists.txt如下, 和 pcl_test.cpp 在同一目录下:

cmake_minimum_required(VERSION 2.6)
project(pcl_test)
 
find_package(PCL 1.2 REQUIRED)
 
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
 
add_executable(pcl_test pcl_test.cpp)
 
target_link_libraries (pcl_test ${PCL_LIBRARIES})
 
install(TARGETS pcl_test RUNTIME DESTINATION bin)

 

cd pcl/pcl_test
mkdir build
cd build
cmake ..
make

make成功后,终端继续键入:

./pcl_test

在当前目录下执行以下命令出现以下窗口则安装成功。

### 安装 PCL 并与 ROS 集成 对于希望在 Ubuntu 20.04 上安装 Point Cloud Library (PCL) 并将其与 Robot Operating System (ROS) 进行集成的情况,操作相对直接。由于 ROS 的某些发行版已经预装了一个版本的 PCL,因此如果需要特定版本,则可能涉及额外配置。 #### 使用包管理器安装 PCL 可以直接通过系统的软件源来获取并安装最新稳定版本的 PCL : ```bash sudo apt update && sudo apt install -y libpcl-dev ``` 这条命令会自动处理所有必要的依赖关系[^1]。 #### 查看当前系统信息 为了确认正在使用的 Ubuntu 版本以及其代号(这对于后续查找其他兼容组件非常重要),可以通过如下命令查看: ```bash lsb_release -a ``` 这一步骤有助于确保所下载的任何附加资源都适用于 focal 发行版[^3]。 #### 处理已有的 ROS-PCL 冲突 当 ROS 已经预先包含了某个版本的 PCL 时,想要替换它可能会遇到一些挑战。通常情况下不建议这样做,除非有特别的需求。如果有更改需求,应该考虑创建一个新的工作空间,在其中覆盖默认设置或编译自定义版本的 PCL。 #### 编译自定义版本的 PCL(可选) 如果确实需要不同版本的 PCL 或者更高级别的定制化功能,可以从源码构建 PCL: 1. 下载所需版本的 PCL 源代码; 2. 准备好 VTK 和 CMake 等工具链; 3. 调整 `CMakeLists.txt` 文件中的选项以适应个人偏好; 4. 构建项目并将生成的结果放置于适当位置以便 ROS 可访问。 需要注意的是,这种方法增加了复杂度,并且可能导致与其他部分之间的兼容性问题,所以在采取行动前应仔细权衡利弊[^4]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值