ubuntu16.04+ROS Kinetic+dvo_slam环境配置
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
由于实验室科研项目需求,需要得到Kinect等的轨迹数据,因此配置了dvo_slam用来得到轨迹数据。
一、ROS安装
ROS版本是和ubuntu系统对应的,大家安装前记得查一下自己系统对应的ROS版本,然后修改相应命令
1.设置sources.list(使用清华源速度比较快)
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
2、设置key(公钥已更新)
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、更新package
sudo apt-get update
4、安装ROS kinetic完整版
sudo apt-get install ros-kinetic-desktop-full
5、初始化rosdep
sudo rosdep init
在这一步初始化如果失败,报错:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down(可能是原有网站被墙了)
可以采用以下方法:
#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com
#保存后退出再尝试
6、配置ROS环境
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
7、安装依赖项
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
8、测试ROS是否安装成功
8.1 打开一个终端
roscore
成功如下图所示:
8.2 再打开一个终端,此时会出现一只小乌龟
rosrun turtlesim turtlesim_node
8.3 出现一个小乌龟的LOGO后,再 打开一个新的终端(Termial),输入以下命令(按方向键可以控制小乌龟移动):
rosrun turtlesim turtle_teleop_key
8.4打开新的Termial,输入以下命令,可以查看ROS节点信息:
rosrun rqt_graph rqt_graph
二、安装dvo_slam
由于dvo_slam需要使用ROS,所以先在上一步安装了
ROS系统采用的是一种工作空间的模式,因此在clone dvo_slam的代码前,应该先创建一个ROS的工作空间,然后将代码放进起。
1.创建ROS工作空间
catkin_ws可以改为dvo_slam,下面相应命令也对应修改
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
echo $ROS_PACKAGE_PATH
注意每开一个新的终端都需要执行倒数第二行代码,意思是将对应的工作空间添加到环境变量中。
2.从dvo_slamclone代码
将src文件夹下四个子文件夹放到新建工作空间的src文件夹中
3.安装sophus(李代数库)
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout b474f05
mkdir build
cd build
cmake ..
make
sudo make install
4.安装CSparse(稀疏矩阵运算库)
sudo apt-get install libsuitesparse-dev
5.安装g2o(优化)
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
git checkout 67d5fa7
mkdir build
cd build
cmake .. -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_LGPL_SHARED_LIBS:BOOL=OFF -DG2O_BUILD_APPS:BOOL=OFF -DG2O_BUILD_EXAMPLES:BOOL=OFF
make
sudo make install
此处使用的是一个较旧版本的g2o,因此对于eigen库的兼容只到eigen3.2.8,如果系统已经安装了大于等于3.2.8的版本,需要下载3.2.8d的版本,并将该库放到g2o的EXTERNAL文件夹中,并将cmake命令修改为:
cmake .. -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_LGPL_SHARED_LIBS:BOOL=OFF -DG2O_BUILD_APPS:BOOL=OFF -DG2O_BUILD_EXAMPLES:BOOL=OFF -DG2O_EIGEN3_INCLUDE=/home/sutd/Workspace/g2o/EXTERNAL/eigen3.2.8/
注意/home/sutd/Workspace/g2o/EXTERNAL/eigen3.2.8/路径修改为自己的eigen路径,不然会报错
6.安装dvo_slam
在以上创建的ROS工作空间下打开终端,执行以下命令,即可完成安装:
catkin_make -DCMAKE_BUILD_TYPE=Release
4
[1]: 源代码:https://github.com/songuke/dvo_slam
[2]: ROS Kinetic安装:https://zhenkai.blog.csdn.net/article/details/83375218
[3]: 创建ROS工作空间:
https://www.cnblogs.com/huangjianxin/p/6347416.html
[4]:其他:https://community.bwbot.org/topic/811/rosdep-init-%E6%88%96%E8%80%85rosdep-update-%E8%BF%9E%E6%8E%A5%E9%94%99%E8%AF%AF%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95