在最开始我们提一个问题,标定工具也得安装在docker内?
思路是这样的,在这里基于docker的autoware,后续的标定包应该放在工作空间,那工作空间是project的,那肯定不能放在docker里面,所以是否意味着每次nlopt这些都得重新安装和编译?
💡 在这里,最开始的思路是用docker安装autoware,然后再安装标定工具,但是这样有不少问题:
1.比如docker每次关闭容器就会删除,改run.sh文件最后一行的
—rm
没有用;
2.多开终端,节点的开启需要多终端,这也会是一个很麻烦的事情,需要进行docker ps
查看容器,然后再创建等等步骤。
所以,要如何解决这些问题呢?
解决办法如下:
分割线==========================================
💡
整体思路:小鱼一键安装docker+ROS,在过程中会给这个容器起个名,比如melodic1,后续通过容器创建的文件夹和文件都会以映射的形式存在于ubuntu中,也就是说在容器中创建的或者配置的东西都会存在硬盘上
小鱼一键安装:wget http://fishros.com/install -O fishros && . fishros
选11
这里可以直接选quit即可
包括里面的工作空间,注意需要在docker下面进行所有的操作
NLopt 是一个轻量级开源非线性优化库, 为多种优化算法提供了统一的接口。
以下是官方安装步骤(路径没什么特别要求,与ws同级即可):
git clone https://github.com/stevengj/nlopt.git
cd nlopt
mkdir build
cd build
cmake ..
make
sudo make install
在执行cmake ..
这一步,会报错:
CMake Error at CMakeLists.txt:15 (cmake_minimum_required):
CMake 3.13 or higher is required. You are running version 3.10.2
原因是cmake版本过低,需要更新cmake
但是在上述办法中一直装不起snap,无语(而且因为上面这个办法需要先删除旧版的cmake好像会导致后面ros都崩了),究其原因是要装cmake,所以换个办法,参考以下办法:ubuntu安装cmake的三种方法
======================以下是更新cmake代码
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - #执行显示OK
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
sudo apt-get update
在执行第二句sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
的时候报错: apt-add-repository: command not found
进行安装即可
sudo apt-get install software-properties-common
sudo apt-get update
Tips:出现安装错误,经常更新sudo apt-get update
可以解决问题
然后继续
sudo apt install cmake
==========================到这里cmake更新结束
继续完成nlopt剩余的安装
cmake ..
make
sudo make install
OK完工
从autoware分离出来的相机雷达联合标定ros包
metapackage
下到自己的工作空间中,catkin_make
然后source devel/setup.bash
新开一个终端执行roscore
当前终端执行rosrun calibration_camera_lidar calibration_toolkit
=========================问题分割线
当clone后(路径为src下),执行catkin_make会报错:
问题原因是缺少文件
解决方案:sudo apt-get install ros-melodic-jsk-recognition-msgs
如果报错:Unable to locate package ros-melodic-jsk-rviz-plugins
更新一下:sudo apt-get update
这个时候再次进行编译catkin_make
就没问题
=========================问题分割线
启动节点失败,Error: package ‘calibration_camera_lidar’ not found
**注意:**编译之前需要修改
~/calibration/src/calibration_camera_lidar/ls_calibration/calibration_camera_lidar
目录下的CMakeLists.txt
文件,将文件中所有的if ("${ROS_VERSION}" MATCHES "(indigo|jade|kinetic)")修改为if ("${ROS_VERSION}" MATCHES "(indigo|jade|kinetic|melodic)")
,因为默认的是不支持melodic
的。
否则编译出来会没有calibration_toolkit
节点
更改[CMakeLists](https://so.csdn.net/so/search?q=CMakeLists&spm=1001.2101.3001.7020).txt
文件后,重新编译catkin_make
最后记得编译完:source devel/setup.bash
=========================问题终止线
新开一个终端执行roscore
并在当前终端执行rosrun calibration_camera_lidar calibration_toolkit
如上,OK。