Nvidia TX2 使用Intelrealsense L515 并安装 RTABmap建图包编译成功

前置:rtabslam需要opencv3.2.0,而tx2 ros melodic 自带4.1.1,所以请按照上篇文章完成配置

Nvidia TX2 安装 opencv3.2.0 及在ros melodic下配置opencv3.2.0_prophet_xh的博客-CSDN博客

开始安装

1.安装二进制文件

sudo apt install ros-melodic-rtabmap-ros

2.从源码安装 

source /opt/ros/melodic/setup.bash
source ~/catkin_ws/melodic/setup.bash

首先是一些必要的依赖

sudo apt install ros-melodic-rtabmap ros-melodic-rtabmap-ros

可选的依赖g2oGTSAM,libpointmatcher...酌情安装,安装前先用sd卡扩充下tx2内存,不然很容易tx2内存满了,导致系统崩溃。

安装 RTAB-Map 独立库。不要在 Catkin 工作区中克隆

cd ~
git clone https://github.com/introlab/rtabmap.git rtabmap
cd rtabmap/build
cmake ..
make -j4
sudo make install

一般依赖都有的话不会报错,都能顺利编译完毕。

3. 将 RTAB-Map ros-pkg 安装在 Catkin 工作区的 src 文件夹中。

第三步的坑是非常多的,前前后后花了很多时间解决

首先是文章开头提到的opencv问题,如果没有配置

会出现 “只找到opencv4.1.1” 这样类型的报错

我们开始安装,这里默认你的工作空间叫 catkin_ws

cd ~/catkin_ws
 git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros

catkin_make前建议以下操作

(1).先更改下 CMakeLists.txt的一些内容,以免一些找不到opencv的报错

打开rtabmap_ros的CMakeLists.txt文件

find_package(OpenCV REQUIRED QUIET COMPONENTS core calib3d imgproc highgui stitching optflow #photo video OPTIONAL_COMPONENTS aruco xfeatures2d nonfree gpu cudafeatures2d)

改成

set(OpenCV_DIR /usr/local/opencv320/share/OpenCV)
find_package(OpenCV REQUIRED)

添加

${OpenCV_INCLUDE_DIRS}

 具体如图

 

(2)安装一些包,该步骤个人觉得比较玄学

在catkin_make时刚开始不能编译,机缘巧合下安装了这些包就能继续编译下去了

所以这步,大家还是根据具体情况,酌情采纳

sudo apt-get install vim cmake
sudo apt-get install git
sudo apt-get install gcc g++

 Pangolin安装

sudo apt-get install libglew-dev
sudo apt-get install cmake
sudo apt-get install libpython2.7-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
sudo apt-get install libdc1394-22-dev libraw1394-dev
sudo apt-get install libjpeg-dev libtiff5-dev libopenexr-dev

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install

 完成上述步骤后

catkin_make -j4

 开始报错

报错

 [ 75%] Building CXX object rtabmap_ros/CMakeFiles/rtabmap_ros.dir/src/OdometryROS.cpp.o
rtabmap_ros/CMakeFiles/rtabmap_ros.dir/build.make:62: recipe for target 'rtabmap_ros/CMakeFiles/rtabmap_ros.dir/src/MsgConversion.cpp.o' failed
make[2]: *** [rtabmap_ros/CMakeFiles/rtabmap_ros.dir/src/MsgConversion.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Scanning dependencies of target rtabmap_camera
[ 75%] Building CXX object rtabmap_ros/CMakeFiles/rtabmap_camera.dir/src/CameraNode.cpp.o
In file included from /usr/include/pcl-1.8/pcl/search/kdtree.h:44:0,
                 from /home/prophet/catkin_ws/src/rtabmap_ros/src/MapsManager.cpp:42:
/usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:230:29: error: field ‘param_k_’ has incomplete type ‘flann::SearchParams’
       ::flann::SearchParams param_k_;
                             ^~~~~~~~
In file included from /usr/include/pcl-1.8/pcl/search/kdtree.h:44:0,
                 from /home/prophet/catkin_ws/src/rtabmap_ros/src/MapsManager.cpp:42:
/usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:52:10: note: forward declaration of ‘struct flann::SearchParams’
   struct SearchParams;
          ^~~~~~~~~~~~
In file included from /usr/include/pcl-1.8/pcl/search/kdtree.h:44:0,
                 from /home/prophet/catkin_ws/src/rtabmap_ros/src/MapsManager.cpp:42:
/usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:233:29: error: field ‘param_radius_’ has incomplete type ‘flann::SearchParams’
       ::flann::SearchParams param_radius_;
                             ^~~~~~~~~~~~~
In file included from /usr/include/pcl-1.8/pcl/search/kdtree.h:44:0,
                 from /home/prophet/catkin_ws/src/rtabmap_ros/src/MapsManager.cpp:42:
/usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:52:10: note: forward declaration of ‘struct flann::SearchParams’
   struct SearchParams;
          ^~~~~~~~~~~~
rtabmap_ros/CMakeFiles/rtabmap_ros.dir/build.make:86: recipe for target 'rtabmap_ros/CMakeFiles/rtabmap_ros.dir/src/MapsManager.cpp.o' failed
make[2]: *** [rtabmap_ros/CMakeFiles/rtabmap_ros.dir/src/MapsManager.cpp.o] Error 1

 

原因: pcl与opencv冲突

解决方案

sudo gedit /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h

::flann::SearchParams param_k_;

改成 

::flann::SearchParams *param_k_;

把 

::flann::SearchParams param_radius_;

改成 

::flann::SearchParams *param_radius_;

保存退出

catkin_make -j4

继续,编译完成

 rtab的ros包到此已经编译完毕!

下篇将开始使用rtab进行slam 

 

 

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值