Ubuntu20.04配置LINS的坑及解决办法

Ubuntu20.04配置LINS的坑及解决办法

  • 参考
  • 1.fatal error: opencv/cv.h: 没有那个文件或目录
  • 2.error: ‘string’ in namespace ‘std::__cxx11’ does not name a type![在这里插入图片描述](https://img-blog.csdnimg.cn/5b1e2f364ada4a92ae9e152e04934c62.png)
  • 3./usr/bin/ld: 找不到 -lBoost::serialization等
  • 4.Error transforming odometry 'Odometry' from frame '/camera_init' to frame 'map'且没有图出来

参考

配置流程参考:
用自己的数据集跑LINS—LiDAR-inertial-SLAM
本文记录自己在Ubuntu20.04配置LINS过程中遇到的几个坑和解决办法,都是在catkin_make的时候遇到的。

1.fatal error: opencv/cv.h: 没有那个文件或目录

Ubuntu20.04配置LINS的坑及解决办法_第1张图片解决方法:
找到src/LINS—LiDAR-inertial-SLAM/lins/include/utility.h,删除 #include ,添加#include
在这里插入图片描述

2.error: ‘string’ in namespace ‘std::__cxx11’ does not name a typeUbuntu20.04配置LINS的坑及解决办法_第2张图片

解决方法:
找到src/LINS—LiDAR-inertial-SLAM/lins/src/lib/parameters.cpp,把134和141行的函数参数中的std::__cxx11::string改成std::string
Ubuntu20.04配置LINS的坑及解决办法_第3张图片

3./usr/bin/ld: 找不到 -lBoost::serialization等

没截到当时出这个错误的图,反正就是找不到lBoost下面的四个库
解决方案:
其实不是没有这四个库,而是名字不知道为啥出了差错,新建四个和要找的名字一样的软连接就可以(比较傻的方法,要是有更好的方法可以评论):

sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_serialization.so /usr/lib/x86_64-linux-gnu/libBoost::serialization.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libBoost::thread.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_timer.so /usr/lib/x86_64-linux-gnu/libBoost::timer.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_chrono.so /usr/lib/x86_64-linux-gnu/libBoost::chrono.so

解决完这个就可以成功编译了:
Ubuntu20.04配置LINS的坑及解决办法_第4张图片

4.Error transforming odometry ‘Odometry’ from frame ‘/camera_init’ to frame 'map’且没有图出来

这是跑图中出现的问题,在代码里搜索所有的/camera_init改成camera_init就没问题了(但是还是会报这个红字)

你可能感兴趣的:(SLAM,c++,自动驾驶)