ROS 、SLAM 学习 error整理

5 篇文章 0 订阅
3 篇文章 4 订阅

一、Lidar

1. fatal error: pcap.h: No such file or directory #include <pcap.h>

在这里插入图片描述

1.1 问题描述:缺少该头文件
1.2 解决方法:sudo apt-get install libpcap-dev

2. fatal error: IOError: [Errno 13] Permission denied: ‘/home/gene/.ros/roscore-11311.pid’

在这里插入图片描述

2.1 问题描述:该路径下ros文件权限不足。
2.2 解决方法:sudo chmod 777 -R ~/.ros/

3. assets_writer_backpack_3d.launch 3d 不生成ply文件

3.1 问题描述:根据cartograper 运行assets_writer_backpack_2d.launch 经验,运行assets_writer_backpack_3d.launch 应该会生成.ply文件,继而可以生成.pcd文件进行浏览。然,实际的Cartographer功能包 3d 不生成.ply文件。
3.2 解决方法:
  • 对比完 2d 3d的相关文件,发现在 assets_writer_backpack_3d.lua 文件中缺少
    {
      action = "write_ply",
      filename = "points.ply",
    },

  在该文件里添加该语句:
在这里插入图片描述  重新编译运行,即可生成3d版的*****.ply文件。


二、slam_14讲

1. /highgui/src/window.cpp:352: error: (-215:Assertion failed)

1.1 问题描述:缺少依赖或者读取文件路径格式/内容错误;
1.2 解决方法:
  • 可能1: sudo apt-get install -y libgtk2.0-dev pkg-config
  • 可能2: 修改一下,源代码读取的源文件路径

2. Failed to load module “canberra-gtk-module”

2.1 问题描述:缺少该依赖文件
2.2 解决方法:

sudo apt-get install libcanberra-gtk-module


3. Could not find GLEW

3.1 问题描述:在Cmake Pangolin 库时,出现 Could not find GLEW error在这里插入图片描述
3.2 解决方法:sudo apt install libglew-dev

4. error while loading shared libraries: libpango_core.so:

4.1 问题描述:pangolin 已经编译成功,在运行可执行文件时,报出error:error while loading shared libraries: libpango_core.so: cannot open shared object file: No such file or directory

在这里插入图片描述

4.2 解决方法:

  在运行./plotTrajectory程序时,用到了 pangolin相关动态库,但链接器ld提示找不到库文件。ld默认的目录是/lib和/usr/lib,故需要更新链接器:sudo ldconfig即可。


5. error while loading shared libraries: libg2o_core.so:

5.1 问题描述:在运行 《SLAM_14讲》ch_7 章节 pose_estimation_3d2d 时,总是报error:在这里插入图片描述
5.2 解决方法:

   和上面的第4个问题类似,因为自己的 g2o 库是源码安装,而在默认情况下,编译器只会使用 /lib /usr/lib这两个目录下的库文件,通过源码包进行安装时,如果不指定 --prefix会将库安装在 /usr/local目录下,而又没有在文件 /etc/ld.so.conf中添加 /usr/local/lib这个目录。这样虽安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。即,系统不知道安装了源码包。ld默认的目录是 /lib /usr/lib,故需要更新链接器即可:
  步骤1: 编辑配置文件 sudo gedit /etc/ld.so.conf在打开的文件里添加下述路径:

/usr/local/lib

在这里插入图片描述

  步骤2: 更新链接器sudo ldconfig


6. /sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 is not a symbolic link

6.1 问题描述:在更新链接器sudo ldconfig时,总是报不是符号链接:

在这里插入图片描述

6.2 解决方法:

  步骤1: 建立软连接::

sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_ /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.3.0 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.3.0 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
sudo ln -sf /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.3.0 /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8

  步骤2: 更新链接器sudo ldconfig即可。


7. undefined reference to fmt::v8::vprintfmt::v10::detail::throw_format_error(char const*)

`

7.1 问题描述:在编译 《SLAM_14讲》ch_5 、ch_7 章节 pose_estimation 部分时,总是报error:

在这里插入图片描述在这里插入图片描述

7.2 解决方法:

  没有链接fmt库,链接上fmt 库即可解决问题:target_link_libraries(useSophus ${Sophus_LIBRARIES} fmt)即可。
在这里插入图片描述


8. std::bind(&OpticalFlowTracker::calculateOpticalFlow, &tracker, placeholders::_1))

8.1 问题描述:在编译 《SLAM_14讲》ch_8 章节时,总是报error:
  • std::bind(&OpticalFlowTracker::calculateOpticalFlow, &tracker, placeholders::_1));
  • std::bind(&JacobianAccumulator::accumulate_jacobian, &jaco_accu, std::placeholders::_1));

在这里插入图片描述

8.2 解决方法:

  自己按照CMakeLists.txt 要求 安装了 opencv4 ,然后相应源文件将CV_GRAY2BGR改为COLOR_GRAY2BGR(否则,会报错),并在CMakeLists.txt指定自己的 Opencv4 路径:set(OpenCV_DIR /usr/local/opencv-4.1.1/build),顺利编译通过。(网上也有重装 opencv3 来解决问题,因自己的opencv3 是 ros 默认安装的,故未选择重装opencv3)
在这里插入图片描述

在这里插入图片描述


9. /usr/bin/ld: cannot find -lnvinfer

9.1 问题描述:在ROS 编译时,遇到 /usr/bin/ld: cannot find -lnvinfer:

在这里插入图片描述

9.2 解决方法:

  这是因为找不到相应的lib文件,以上面的例子来说就是在系统中找不到libnvinfer.so 、libnvinfer_plugin.so 文件。而自己到自己安装的文件路径下有该动态库文件:
在这里插入图片描述  但是在 /usr/lib该路径下无该动态库文件,故需要链接该文件库:

sudo ln -s /usr/local/TensorRT/lib/libnvinfer.so.7.1.3 /usr/lib/libnvinfer.so
sudo ln -s /usr/local/TensorRT/lib/libnvinfer_plugin.so.7.1.3 /usr/lib/libnvinfer_plugin.so

   重新编译即可通过。


10. SyntaxError: Non-ASCII character ‘\xe7’

10.1 问题描述:在ROS 中对python 脚本编译时,出现此error

在这里插入图片描述

10.2 解决方法:

  这是因为编码问题,可能有中文输入,在开头添加** #coding=utf-8 ** ,重新编译ROS即可通过。
在这里插入图片描述

11.Unable to locate package libjasper-dev

环境太干净,无法找到一些源的原因,添加该库的源即可

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libtiff4.dev libswscale-dev libjasper-dev
12. Can’t find Google Log (glog)

在编译ceres-solver的时候,报错找不到glog。完整的报错内容如下:
在这里插入图片描述
打开ceres-solver的CMakeLists.txt文件,找到报错的位置,然后,在前面加上set(MINIGLOG 1)(也就是设置MINIGLOG这个变量值为1,这样就可以走if这个分支,就会自动编译miniglog了),如下图所示:
在这里插入图片描述

三、系统环境

1. git clone: Failed to connect to github.com port 443:connection timed out

1.1 问题描述:在进行 git clone 时,不知咋回事发现:Failed to connect to github.com port 443: Connection timed out,clone 不下来了,如下图所示:在这里插入图片描述
1.2 解决方法:

在终端输入,配置全局代理,问题即可解决。

git config --global http.proxy http://127.0.0.1:7890 
git config --global https.proxy http://127.0.0.1:7890
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值