Ubuntu16.04安装ROS kinetic以及标定工具Kalibr流程
一、安装ROS Kinetic
(官网使用的是ubuntu14.04,所以安装的是ROS indigo,而ubuntu16.04支持的是ROS Kinetic)
网址:http://wiki.ros.org/Installation/Ubuntu?distro=kinetic
- 配置你的Ubuntu repositories(存储库)
配置你的Ubuntu存储库以允许”restricted” ,“universe”和“multiverse”。 参照该处,设置–Software&Updates,如下图所示。
- 设置你的 sources.list
将计算机设置为从packages.ros.org接受软件。 ROS Kinetic只支持Wily(Ubuntu 15.10),Xenial(Ubuntu 16.04)和Jessie(Debian 8)。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- 设置你的密钥
这一步是为了确认原始的代码是正确的,并且没有人在未经所有者授权的情况下修改任何程序代码。
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
- 安装
首先,确保你的Debian软件包索引是最新的,输入以下命令:
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
- 初始化rosdep
在你可以使用ROS之前,你需要初始化rosdep。 rosdep使您能够轻松地为要编译的源安装系统依赖项,并且需要在ROS中运行一些核心组件。
sudo rosdep init
rosdep update
- 环境设置
如果ROS环境变量在每次启动新shell时自动添加到bash会话中,这将非常方便:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 如果您安装了多个ROS发行版,~/.bashrc必须只提供您当前使用的版本的setup.bash 如果你只是想改变你当前shell的环境,而不是上面的你可以键入:
source /opt/ros/kinetic/setup.bash
- 获取rosinstall
rosinstall是ROS中经常使用的命令行工具,它是单独分发的。 它使您能够使用一个命令轻松下载ROS软件包的许多源代码树。
sudo apt-get install python-rosinstal
二、安装kalibr
- 安装所需依赖项
sudo apt-get install python-setuptools
sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen
sudo apt-get install ros-kinetic-vision-opencv ros-kinetic-image-transport-plugins ros-kinetic-cmake-modules python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev
- 创建catkin工作空间
mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
source /opt/ros/kinetic/setup.bash
catkin init
catkin config --extend /opt/ros/kinetic
catkin config --merge-devel # Necessary for catkin_tools >= 0.4. catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
- 下载源码
cd ~/kalibr_workspace/src
git clone https://github.com/ethz-asl/Kalibr.git
- 编译
cd ~/kalibr_workspace
catkin build -DCMAKE_BUILD_TYPE=Release -j4
- 使用时设置环境变量
source ~/kalibr_workspace/devel/setup.bash
编译期间可能遇到的问题及解决方案:
<问题1>
ImportError: "from catkin_pkg.package import parse_package" failed: No module named catkin_pkg.package
<解决办法> 检查一下Python的版本: $ python -V
检查一下catkin依赖的Python版本: $ dpkg -L python-catkin-pkg
如果Python的版本和catkin依赖的版本不一样,说明Python依赖包有问题,解决办法:
conda install setuptools
pip install -U rosdep rosinstall_generator wstool rosinstall six vcstools
<问题2>
/opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
/opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1:‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用
/opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
/opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
/opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_imgcodecs3.so.3.3.1:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用
<解决方案>
其原因时安装的libtiff库和opencv和PLC中调用的libtiff库版本与安装的版本不对应,去libtiff官网上下载 tiff-4.0.4.tar.gz压缩包安装即可。安装方法如下:
解压tar -zxvf tiff-4.0.4.tar.gz
进入tiff目录
./configure
make
make install
通过sudo apt-get install libtiff4-dev安装,运行该命令后,提示libtiff4-dev已经被libtiff5-dev替代,只可安装libtiff5-dev,安装后并未解决问题。
安装后:
/opt/ros/kinetic/share/cv_bridge/cmake
中的cv_bridgeConfig.cmake
修改
在第112行中加上/usr/lib/x86_64-linux-gnu/libtiff.so.5.2.0
(注意库名)
即可解决。