Ubuntu18.04+ROS-melodic下的kalibr安装编译

Ubuntu18.04+ROS-melodic下的kalibr安装编译

注意&强调:任何教程一定要先浏览一遍,心中有个大概,再一步一步的去照流程操作,可以在掉坑之前有个预警

推荐教程:小觅双目+IMU联合标定 中的kalibr安装步骤,因为其中有些命令排版有问题,不能直接用,所以稍微修改,安装命令如下:

(1)安装依赖项

$ sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopencv-dev
$ sudo apt-get install ros-melodic-vision-opencv ros-melodic-image-transport-plugins ros-melodic-cmake-modules 
$ sudo apt-get install python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython 
$ sudo apt-get install libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev

$ sudo pip install python-igraph --upgrade

其中 $ sudo pip install python-igraph --upgrade 很重要,如果没有安装编译过程中会报错(没有安装pip也会报错)

(2)创建工作空间

$ mkdir -p ~/kalibr_workspace/src
$ cd ~/kalibr_workspace
$ source /opt/ros/kinetic/setup.bash
$ catkin init
$ catkin config --extend /opt/ros/kinetic
$ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

(3)下载并编译

$ cd ~/kalibr_workspace/src
$ git clone https://github.com/ethz-asl/Kalibr.git
 
$ cd ~/kalibr_workspace
$ catkin build -DCMAKE_BUILD_TYPE=Release -j12

编译的时候一定要使用上面的命令catkin build 而不是用catkin_make编译,因为catkin_make可以看做是对catkin buid -j12 -l12的一个集成编译,会同时多线程编译,出现类似:**warning: -jN forced in submake: disabling jobserver mode.* 这样的警告。因为有些make是make的递归调用,而在这种情况下被调用的make进程无法和其他make进程进行通讯,只能简单的并行处理这些任务。

(4)设置环境

source ~/kalibr_workspace/devel/setup.bash

安装成功。

下面是可能会遇到的问题:

1、catkin_make过程中下载suitesparse过久甚至失败的问题

(1)catkin_make过程中下载suitesparse过久甚至失败的问题

(2)Camera-IMU标定工具Kalibr的编译

心得:以第二个链接为主,在下载时最好选择suitesparse-4.2.1版本,版本虽然很老却有助于顺利编译,毕竟安装kalibr成功才是最重要的。建议线程开大j8同时提前把suitesparse下载到本地。

 DOWNLOAD_COMMAND rm -f SuiteSparse-${VERSION}.tar.gz #&& wget http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${VERSION}.tar.gz
  PATCH_COMMAND tar -xzf /home/chm/Downloads/suitesparse-${VERSION}.tar.gz && rm -rf ../suitesparse_src-build/SuiteSparse && sed -i.bu "s/\\/usr\\/local\\/lib/..\\/lib/g" suitesparse-4.2.1/SuiteSparse_config/SuiteSparse_config.mk && sed -i.bu "s/\\/usr\\/local\\/include/..\\/include/g" suitesparse-4.2.1/SuiteSparse_config/SuiteSparse_config.mk && mv suitesparse-4.2.1 ../suitesparse_src-build/
  CONFIGURE_COMMAND ""
  BUILD_COMMAND cd suitesparse-4.2.1 && make library -j8 -l8
  INSTALL_COMMAND cd suitesparse-4.2.1 && mkdir -p lib 

2、安装编译出现ReadTimeoutError: HTTPSConnectionPool

python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法

一般情况下pip出现ReadTimeoutError都是因为被GFW给墙了,可以通过选择国内的镜像来解决。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple module_name

这个可能是因为之前自己折腾环境的过程中出现的问题,顺带把摸索教程中出现的问题也附录在后面

dpkg: warning: files list file for package `** ** **’

安装kalibr依赖时(试了很多教程,安装的依赖都不太一致),其中有一句

$sudo apt-get install --reinstall python-numpy

运行会报 dpkg : warning : files list file for ~~~~大概能报几千条吧,找到了一个能上手的链接

dpkg: warning: files list file for package `*****’ 解决方法总结

非常有意义的是,下面博主的回复非常细致,告诉了如何将这个脚本运行起来,再次总结如下:

(1)先将脚本的代码内容在Text Editor中编辑,然后保存文件为 file_name.sh (file_name为自己起的文件名字)在home文件夹下(其他位置也可以)

​ 即:新建一个任意名字的.sh脚本文件,然后将找到的脚本代码拷贝进去

(2)在保存.sh文件的文件夹中打开终端,输入 sudo chmod 777 file_name.sh ,将脚本变为可执行文件

​ 即:在命令行给执行权限,例如sudo chmod 777 file_name.sh

(3)接着在终端输入 sudo ./file_name.sh ,就开始运行脚本了,然后等待执行结束。

​ 即:命令行下再执行该sh文件即可,例如: ./file_name.sh

你可能感兴趣的:(环境配置)