学习SLAM:SLAM进阶(十)暴力更改ROS中的PCL库

话不多说,上活

1.1 为什么要这么做

项目中有依赖。。。。

1.2 安装VTK7.1.1 PCL1.8.0

1.3 移植到ROS

删除ROS依赖的vtk6.2和PCL1.8.0的动态链接库:

cpp 复制代码
liugongwei@ubuntu:~$ sudo mv /usr/lib/x86_64-linux-gnu/libvtk* Desktop/lib/
[sudo] password for liugongwei: 
liugongwei@ubuntu:~$ sudo mv /usr/lib/x86_64-linux-gnu/libpcl* Desktop/lib/

可以看到,所有有关的PCL库文件已经被移动到桌面了。。。。

然后编译我们的vtk7.1.1和PCL1.8.0:

将这些动态链接库文件拷贝到/usr/lib中。。。。

cpp 复制代码
liugongwei@ubuntu:~$ sudo cp /usr/local/lib/libpcl* /usr/lib/x86_64-linux-gnu/
[sudo] password for liugongwei: 
liugongwei@ubuntu:~$ sudo cp /usr/local/lib/libvtk* /usr/lib/x86_64-linux-gnu/

发现项目链接错误,因为ROS的PCL是vtk6.3嘛:

更改环境变量:

cpp 复制代码
export PCL_HOME=/usr/local/pcl-1.8.0
export PATH=$PATH:$PCL_HOME/bin 
export LD_LIBRARY_PATH=$PCL_HOME/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

更改项目动态链接库指向:

cpp 复制代码
list(APPEND CMAKE_PREFIX_PATH /usr/local/pcl-1.8.0/lib)
include_directories("/usr/local/pcl-1.8.0/include/pcl-1.8")

编译,还是没法重新指向

删除二进制文件:

删除头文件:

liugongwei@ubuntu:/usr$ sudo mv include/pcl-1.8/ /home/liugongwei/Desktop/

拷贝头文件:

liugongwei@ubuntu:/usr$ sudo cp -r /usr/local/pcl-1.8.0/include/ /usr/include/

拷贝二进制文件:

liugongwei@ubuntu:/usr$ sudo cp -r /usr/local/pcl-1.8.0/bin/ /usr/bin/

编译,发现缺少这个,原来是我们文件夹名起错了。。。。。

改个名字:

liugongwei@ubuntu:~/Desktop/bag/catkin_l$ sudo cp -r /usr/local/include/pcl-1.8/ /usr/include/

liugongwei@ubuntu:~/Desktop/bag/catkin_l$ sudo mv /usr/include/pcl-1.8/ /usr/include/pcl-1.8.0

再次报错。。。把VTK也移过来吧。。。

liugongwei@ubuntu:~/Desktop/bag/VTK-7.1.1/build$ sudo mv /usr/local/include/vtk-7.1/ /usr/include/

最后再把vtk的include目录和lib内容移回去就OK,成功跑通。

看到项目链接到了pcl1.8.0,但是为了保证pcl_conversation存在,我们还需要重新建立文件夹。

我们编辑这个文件:sudo gedit /opt/ros/melodic/share/pcl_conversions/cmake/pcl_conversionsConfig.cmake

​​​​​​​

相关推荐
nnerddboy40 分钟前
解决传统特征波段选择的局限性:1.对偶学习
学习·算法·机器学习
山土成旧客43 分钟前
【Python学习打卡-Day28】类的蓝图:从模板到对象的构建艺术
linux·python·学习
三品吉他手会点灯43 分钟前
STM32F103 学习笔记-20-通信的基本概念
笔记·stm32·单片机·嵌入式硬件·学习
悠哉悠哉愿意44 分钟前
【嵌入式学习笔记】GPIO与LED
笔记·单片机·嵌入式硬件·学习
崇山峻岭之间1 小时前
Matlab学习记录11
开发语言·学习·matlab
Mabnus1 小时前
降钙素基因相关肽CGRP
学习
d111111111d1 小时前
在stm32中什么是hal库,什么是标准库,二者的区别?
笔记·stm32·单片机·嵌入式硬件·学习
后端小张1 小时前
【AI 学习】LangChain框架深度解析:从核心组件到企业级应用实战
java·人工智能·学习·langchain·tensorflow·gpt-3·ai编程
点云SLAM2 小时前
Advantageous 英文单词学习
学习·英文单词学习·雅思备考·advantageous·有利的 / 占优势的·有益的 / 有帮助的
悠哉悠哉愿意2 小时前
【EDA学习笔记】电子技术基础知识:读懂与画好原理图
笔记·单片机·嵌入式硬件·学习·eda