注:不同版本的ubuntu系统安装的ros版本号也不同,参见下图进行选择。
#先换源,阿里云或者清华都可以,然后把更新的三个框都选上
#在桌面打开终端
#设置sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
#设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
#更新package
sudo apt-get update
#安装ROS kinetic完整版
sudo apt-get install ros-kinetic-desktop-full
#初始化
sudo rosdep init
rosdep update
#配置ROS环境
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc #用gedit /.bashrc命令打开.bashrc文件后会看见,在最下面一行添加了""之间的语句
source ~/.bashrc
#测试ROS是否安装成功
#在终端输入
roscore
#在打开一个终端输入
rosrun turtlesim turtlesim_node
#出现一个小乌龟的LOGO后,再 打开一个新的终端,输入
rosrun turtlesim turtle_teleop_key
#通过方向键可以控制小乌龟的移动
#打开新的Termial,输入以下命令,可以查看ROS节点信息
rosrun rqt_graph rqt_graph
#在桌面开一个终端
mkdir -p ~/catkin_ws/src #这里设置ros文件夹名称为catkin_ws,可以自己设置
cd ~/catkin_ws/src
catkin_init_workspace #在src文件夹中生成CMakeLists.txt文件
cd ..
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
可参见参考链接一。
一般在终端直接输入下列指令即可,but,就是有but。
sudo apt-get install libeigen3-dev
注:直接用指令安装后面可能存在版本问题,ceres要求Eigen版本不低于3.3.4。因此要进行下列操作。
安装后可以使用如下指令查询Eigen版本号,若出现”权限不够“的问题,也可以直接打开下面的文件查看版本号。
/usr/include/eigen3/Eigen/src/Core/util/Macros.h
如果版本低于3.3,就会在配置ceres时(cmake ..
的步骤)出现Could not find a configuration file for package "Eigen3" that is compatible with requested version "3.3".
的问题,就需要卸载原版本,重新下载。
sudo updatedb
locate eigen3
sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums
手动安装新的版本。下载地址:https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz 。
安装依赖项,用如下指令。
sudo apt-get install libopenblas-dev
sudo apt-get install --no-install-recommends libboost1.58-all-dev
sudo apt-get install libx11-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install doxygen
sudo apt-get install cmake
sudo wget https://nchc.dl.sourceforge.net/project/glew/glew/2.1.0/glew-2.1.0.tgz --no-check-certificate
sudo tar -xzvf glew-2.1.0.tgz
cd glew-2.1.0/
sudo make
sudo make install
sudo ldconfig -v
安装Eigen3.3.7。打开eigen-3.3.7文件夹,在终端输入下列指令。
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig -v
apt-get安装eigen3的路径为 /usr/include/eigen3 ,这里也保持一直;此外,需使用下面命令将Eigen映射到 /usr/include 路径下,因为在很多程序中include时经常使用#include
sudo cp -r /usr/local/include/eigen3 /usr/include/eigen3
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
注:eigen和ceres版本存在兼容问题。这里选用eigen3.3.7和ceres-1.14.0。
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.4 libgflags-dev libgoogle-glog-dev libgtest-dev
sudo apt-get install cmake
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libatlas-base-dev
#sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev
wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
#下载后看情况选用不同的解压指令,或者直接右键解压也可以
mkdir build
cd build
cmake ..
make
sudo make install
注:这里只是额外讲述另一种配置方法,可以跳过此步。
由于直接基于ROS和小觅进行测试,因此在这里讲一下如何安装docker,如果是基于小觅相机进行测试,此前还需要下载 MYNT-EYE-S-SDK 及安装 mynt_eye_ros_wrapper。
如果只是用标准数据集测试,可以跳过这一步,直接配置VINS,参考链接一或二。
安装docker时,在终端输入如下指令。
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
将账号加到 docker 组,避免每次运行docker命令的时候都需要输入sudo。在终端输入如下指令,$YOUR_USER_NAME
处输入自己的用户名。
sudo usermod -aG docker $YOUR_USER_NAME
退出当前用户登陆状态,然后重新登录,以便让权限生效,或重启docker-daemon。
sudo systemctl restart docker
docker info
可能会出现ERROR: Got permission denied while trying to connect to the Docker daemon socket at unix
的问题,在终端输入下列指令即可。
sudo chmod a+rw /var/run/docker.sock
如果不是要基于小觅运行,也可以直接安装VINS-Mono,可以参照参考链接二。
sudo apt-get install ros-kinetic-cv-bridge ros-kinetic-tf ros-kinetic-message-filters ros-kinetic-image-transport
安装时,在创建的ros工作空间中的src文件中打开终端。
注:
- 网络是个很大的问题,建议自己开热点执行
git clone
。- 如果直接安装ROS然后安装docker,那么需要执行下面所有语句。这里要求内存空间足够大,至少16G。
git clone -b docker_feat https://github.com/slightech/MYNT-EYE-VINS-Sample.git
cd MYNT-EYE-VINS-Sample/docker
make build
在make build
时可能会出现一些红色字体,如debconf: delaying package configuration, since apt-utils is not installed
,这些是可忽视的。
注:
如果从前面的步骤一直执行到第4步,则只需要执行git clone
语句,然后在catkin_ws
中执行catkin_make
语句对src
中所有文件重新编译,或者单独编译新添加的软件包。这里可以参考这个链接catkin_make的时候发生了什么学习一下catkin_make的知识。
git clone -b docker_feat https://github.com/slightech/MYNT-EYE-VINS-Sample.git
cd ..
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
注:上面的
处要查找对应的待编译的包的名字,具体查找方法见上面的那个链接。
source ~/catkin_ws/devel/setup.bash
source ./wrappers/ros/devel/setup.bash
roslaunch mynt_eye_ros_wrapper vins_mono.launch
source ~/ROS_ws/devel/setup.bash
roslaunch vins_estimator mynteye_s.launch
打开三个终端分别运行如下命令
source ~/ROS_ws/devel/setup.bash
roslaunch vins_estimator euroc.launch
source ~/ROS_ws/devel/setup.bash
roslaunch vins_estimator vins_rviz.launch
source ~/ROS_ws/devel/setup.bash
rosbag play <数据集的路径>/MH_01_easy.bag
roslaunch benchmark_publisher publish.launch sequence_name:=MH_01_easy
这里也只能保存euroc数据集的运行结果。
打开MYNT-EYE-VINS-Sample/config/euroc
中的euroc_config.yaml
文件。将其中的pose_graph_save_path
和output_path
后面的内容更改为自己设定的保存轨迹的路径。
要保存的时候,只需要在运行完euroc数据集后,在运行roslaunch vins_estimator euroc.launch
的终端中输入s
,并按下回车键Enter
,等待地图保存。
参考
Ubuntu16.04系统运行vins mono(完整版环境配置及编译)
unbuntu运行VINS-MONO实验总结
eigen3 版本信息查看
安装ceres提示“找不到要求版本3.3的Eigen3”解决办法
Ceres安装报错“找不到要求版本3.3的Eigen3”解决方法
【Docker】非root用户加入docker用户组省去sudo (三)
(20200328已解决)[dockerfile] debconf: delaying package configuration, since apt-utils is not installed
catkin_make的时候发生了什么
ubuntu1604安装ceres库
vins-mono保存、重载地图、evo工具测试