Ubuntu16.04 多版本pcl 1.11与pcl_ros pcl_conversion冲突错误

本文档详细介绍了在Ubuntu16.04上,当高版本的pcl 1.11与ros-kinetic-pcl-ros中的pcl_ros和pcl_conversion存在冲突时,如何解决此问题。解决方案包括源码安装pcl_ros和pcl_conversion,修改依赖版本,以及解决uint32_t与int32_t的类型冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@[TOC]Ubuntu16.04 pcl1.11与pcl_ros pcl_conversions pcl_msg冲突错误

Ubuntu16.04 高版本pcl 1.11与pcl_ros pcl_conversion冲突错误

问题描述

  • Ubuntu16.04在装ros的时候apt安装了pcl1.7,自己源码安装了pcl1.11。

  • 在ros中使用pcl需要将sensor_msgs::PointCloud2ConstPtr转成pcl的点云格式,这就需要用到pcl_msg和pcl_ros和pcl_conversion三个ros包

  • apt 拉取的ros-kinetic-pcl-ros库库依赖于pcl1.7,导致无法在ros系统中使用pcl1.11

  • 即apt安装的pcl_ros pcl_conversion依赖与pcl1.7,导致无法在ros系统中使用pcl1.11,需要自己重新源码安装pcl_ros pcl_conversion,将它们依赖改成pcl1.11。

解决方案

  1. 拉取源码
  • perception_cpl.git直接拉下2.1.0和1.71两个版本。可以git clone也可以直接点击download下载zip。我用的虚拟机,所以直接在windows下好zip压缩文件解压,windows下东西会快一些。
  1. 编译pcl-ros
  • pcl-ros使用2.1
### 安装 Point Cloud Library (PCL) 的方法 对于 Ubuntu 16.04 LTS 用户来说,安装 PCL 可以通过多种方式实现。一种简单的方法是利用 APT 包管理器来完成安装;另一种更灵活的方式则是从源码编译。 #### 使用APT包管理器安装PCL 如果希望通过最简便的方式来获取并安装 PCL 及其依赖项,可以按照以下指令操作: 更新软件仓索引,并安装必要的开发工具和文件: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install cmake build-essential git pkg-config wget unzip ``` 接着可以直接安装预构建好的 PCL 版本以及 VTK 支持: ```bash sudo apt-get install libpcl1 pcl-tools libproj-dev ``` 这一步骤会自动处理好大部分所需的依赖关系[^3]。 #### 手动编译最新版本PCL 为了获得最新的功能特性或是特定需求下的定制化设置,可以选择下载官方发布的 tarball 或者克隆 GitHub 上的项目仓来进行本地编译。以下是具体的操作流程: 准备阶段同样需要先准备好基础环境: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install cmake build-essential git pkg-config wget unzip \ freeglut3-dev qtbase5-dev python-numpy flann-utils libflann-dev \ libeigen3-dev libboost-all-dev libvtk6-dev libsuitesparse-dev \ libqhull* libusb-1.0-0-dev ``` 随后前往目标目录并拉取代码: ```bash cd ~/Downloads/ git clone https://github.com/PointCloudLibrary/pcl.git --branch pcl-1.8 ``` 创建一个新的构建目录用于存放生成的目标文件,并进入该目录内初始化 CMake 构建过程: ```bash mkdir -p ~/Downloads/build_pcl && cd $_ cmake ../pcl make -j$(nproc) sudo make install ``` 最后可能还需要手动建立一些软连接以便于后续的应用程序能够顺利找到这些共享对象文件: ```bash sudo ln -s /usr/local/lib/libpcl_common.so /usr/lib/x86_64-linux-gnu/libpcl_common.so sudo ln -s /usr/local/lib/libpcl_octree.so /usr/lib/x86_64-linux-gnu/libpcl_octree.so sudo ln -s /usr/local/lib/libpcl_io.so /usr/lib/x86_64-linux-gnu/libpcl_io.so ``` 上述命令中的路径应当依据实际情况调整为实际存在的 `.so` 文件所在位置[^5]。 无论采用哪种方式进行部署,在整个过程中都应确保系统的网络连接正常工作,因为某些步骤可能会涉及到在线资源的访问。另外值得注意的是,由于不同版本之间可能存在兼容性差异,因此建议仔细阅读各个文档说明部分关于支持平台的具体描述。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值