Ubuntu18.04+ROS+kalibr标定工具箱安装编译

目录

前言

一、安装ROS

1.设置镜像源

2. 更新软件包索引

3. 安装ROS

 4.测试ROS是否安装成功

二、安装kalibr-melodic

1.kalibr简介

2.安装kalibr

 3.测试kalibr

参考文献:


前言

安装编译要我老命啊!经历了与kalibr的漫长而曲折的战斗。终于搞定。先来张成功的结果图打打鸡血!兄弟们,搞起!

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第1张图片Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第2张图片

一、安装ROS

ROS有多个版本,不同版本的ubuntu系统需要安装对应的ROS,对照如下表:

ROS版本 ubuntu版本
indigo ubuntu14.04
kinetic ubuntu16.04
melodic ubuntu18.04
noetic ubuntu20.4

本文以ubuntu18.04+ROS-melodic为例进行安装编译。(该版本使用较多,网上资源多)

注意:如读者安装版本与本文不同,请注意相关命令种将melodic更换成对应版本(kinetic或noetic)。安装步骤大同小异。

1.设置镜像源

如果可以可以科学上网的话,读者可以按照 国外源进行安装:

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://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

否则使用国内源进行安装:

中科大源: 

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

设置公钥:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 上面源不可以的话:可以试试下面的

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

或者

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

 设置公钥:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

如果连接到密钥服务器时遇到问题,可以尝试用上一个命令替换hkp://pgp.mit.edu:80hkp://keyserver.ubuntu.com:80。可以到官网查询最新的密钥是什么。

2. 更新软件包索引

sudo apt-get update

3. 安装ROS

现给出官网 的安装步骤做参照:

export ROS1_DISTRO=noetic # kinetic=16.04, melodic=18.04, noetic=20.04
sudo apt-get install ros-$ROS1_DISTRO-desktop-full
sudo apt-get install python-catkin-tools # ubuntu 16.04, 18.04
sudo apt-get install python3-catkin-tools python3-osrf-pycommon # ubuntu 20.04

ubuntu18.04安装步骤: 

sudo apt install ros-melodic-desktop-full
sudo apt-get install python-catkin-tools

 构建包依赖关系:

rosinstall是一个常用的命令行工具,使您可以通过一个命令轻松下载ROS软件包的许多源代码树。

安装rosinstall:

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

(注意:ubuntu20.04要将python改为python3)

其实这一步也会把rosdep安装好。

rosdep能够轻松地为要编译的源安装系统依赖性,并且是运行ROS中某些核心组件所必需的。

安装rosdep:

sudo apt install python-rosdep

 初始化并更新rosdep:

sudo rosdep init
rosdep update

如果安装rosdep失败的话,可改为安装rosdepc:

sudo apt-get install python-rosdepc
sudo rosdepc init
rosdepc update

设置环境:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

 4.测试ROS是否安装成功

为了测试一下我们的ROS是否安装成功,这里我们来测试一个例程——小海龟仿真器。 

1.打开一个新的终端(ctrl+alt+T),启动ROS Master。

roscore

 2.再打开一个新的终端(ctrl+alt+T),启动小海龟仿真器。

rosrun turtlesim turtlesim_node

 此时,运行完出现小海龟窗口。
3. 再打开一个新的终端(ctrl+alt+T),启动小海龟控制节点。

rosrun turtlesim turtle_teleop_key

最后,光标选中最后开启这个终端,按下方向键就可以控制小海龟移动啦! 

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第3张图片

 4.检查rviz等高级功能的运行

打开第一个终端输入roscore 打开第二个终端输入rosrun rviz rviz 看到下图画面则rviz等其他组件安装成功。 Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第4张图片

 5.使用rqt_graph

 打开一个新终端:

rosrun rqt_graph rqt_graph

成功运行出现以下窗口:

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第5张图片 

如果报错:ModuleNotFoundError: No module named 'rospkg'
请参照链接https://www.freesion.com/article/7153962566/ 进行解决。

二、安装kalibr-melodic

1.kalibr简介

Kalibr是一个由瑞士ETH开源的、使用比较广泛的相机校正工具包,主要进行包括以下三方面的校正(翻译自GitHub项目主页,部分修改):

  • 多相机标定:具有非全局共享重叠视场的相机系统的内参、外参标定
  • 相机-IMU校正:IMU和相机的内参、外参标定
  • 卷帘相机校正:对卷帘快门的相机进行标定

关于它的一系列理论,可以参考GitHub主页中列出的5篇文章。本篇博客只从安装和使用的角度对Kalibr进行介绍。

2.安装kalibr

Kalibr有两种方式可供使用,一种是预编译好的可执行文件包(CDE Package),直接打开就可以使用;另一种是源码,需要自己编译。

两种方式各有优势。CDE包运行最简单、快捷,不需要配置依赖环境,但同时会缺少Camera focus和Calibration validator这两个功能。而源码编译好处就是全功能,而且相比于CDE包运行效率会更快。当然坏处就是要配置一堆环境,还有可能面对各种奇奇怪怪的编译错误。

不过本人并未找到这传说中的CDE包,如果读者找到并会安装,欢迎在评论区留言,感谢!

本文以ubuntu18.04+kalibr为例进行安装。

1.安装依赖项

所有 Ubuntu 版本的通用要求如下:

sudo apt-get install -y \
    git wget autoconf automake nano \
    libeigen3-dev libboost-all-dev libsuitesparse-dev \
    doxygen libopencv-dev \
    libpoco-dev libtbb-dev libblas-dev liblapack-dev libv4l-dev

 然后由于不同的Python版本,您将需要安装以下内容:

# Ubuntu 16.04
sudo apt-get install -y python2.7-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk3.0 python-tk python-igraph
# Ubuntu 18.04
sudo apt-get install -y python3-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk4.0 python-tk python-igraph
# Ubuntu 20.04
sudo apt-get install -y python3-dev python3-pip python3-scipy \
    python3-matplotlib ipython3 python3-wxgtk4.0 python3-tk python3-igraph

本文为ubuntu18.04系统,安装命令如下:

sudo apt-get install -y python3-dev python-pip python-scipy \
    python-matplotlib ipython python-wxgtk4.0 python-tk python-igraph

 2.创建工作空间

首先我们可以创建一个工作区。将其配置为在发布模式下构建很重要,否则优化会很慢。

本文先给出官网安装示例:

mkdir -p ~/kalibr_workspace/src
cd ~/kalibr_workspace
export ROS1_DISTRO=noetic # kinetic=16.04, melodic=18.04, noetic=20.04
source /opt/ros/$ROS1_DISTRO/setup.bash
catkin init
catkin config --extend /opt/ros/$ROS1_DISTRO
catkin config --merge-devel # Necessary for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

ubuntu18.04安装命令如下:

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

 3.源码下载

官网教程是从网站克隆,但克隆版本并不符合安装系统,总是出错,显示kalibr_calibrate_imu_camera命令未找到,多次重新编译也未成功。

所以本文选用kalibr与ubuntu18.04对应的版本(其他ubuntu系统同理):

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第6张图片

下载后将kalibr-fix-18.04.zip解压到 ~/kalibr_workspace/src文件夹下:

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第7张图片

此外,克隆 

git clone https://github.com/ethz-asl/kalibr.git

这个版本kalibr-master做备用。

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第8张图片 

 4.源码编译:

cd ~/kalibr_workspace/
catkin build -DCMAKE_BUILD_TYPE=Release -j4

编译过程会出现如下问题:

 下载suiteaparse过久甚至失败,参考以下链接解决

https://blog.csdn.net/u010003609/article/details/104715475

其他错误可参照:https://blog.csdn.net/u010003609/article/details/104715475

不过一般的,如果编译错误,将报错所指路径文件全部替换为kalibr-master对应的文件,简单粗暴,亲测有效。

编译成功会如下图所示Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第9张图片

如果直接按官网教程采用克隆编译,会缺少suiteasparse文件,最终显示为36 package. 

5.刷新工作空间。

source ~/kalibr_workspace/devel/setup.bash

 当然,上面的这行命令只对当前终端有效,这样每次使用前都需要source一下。如果想更加方便,可以直接输入gedit ~/.bashrc打开文件,将上面内容写入并保存。

最后输入source ~/.bashrc即可。

 3.测试kalibr

本文测试相机与imu联合标定,其他标定过程可参考kalibr官网。

从https://pan.baidu.com/s/1bWQT7g提取码2g2t下载数据包,解压放在工作空间里

在终端输入标定命令:

kalibr_calibrate_imu_camera --target april_6x6.yaml --cam camchain.yaml --imu imu_adis16448.yaml --bag dynamic.bag --bag-from-to 5 45

程序会输出三个文件:

  • report-imucam-dynamic.pdf:PDF版本的结果报告,包含绘制的图片和标定的参数。
  • results-imucam-dynamic.txt:以文本文件储存的标定结果。
  • camchain-imucam-dynamic.yaml:以YAML格式储存的标定结果。它是在camchain.yaml的基础上增加了所有相机相对于

标定后的结果如下图所示。

Ubuntu18.04+ROS+kalibr标定工具箱安装编译_第10张图片

 到此,安装顺利结束,又可以搬砖去了。


参考文献:

https://blog.csdn.net/panjie_/article/details/113616630

https://blog.csdn.net/KIK9973/article/details/118755045

ROS官网:cn/ROS/Tutorials/UnderstandingTopics - ROS Wiki

 kalibr官网:https://github.com/ethz-asl/kalibr/wiki/installation

 https://zhaoxuhui.top/blog/2020/09/09/kalibr-installation-and-use.html

你可能感兴趣的:(标定,c++,ubuntu)