covins在ubuntu18.04下跑通数据集

虽然论文里说ubuntu18和ubuntu20都可以,但是还是更推荐18.04,亲测20在安装时会报错。

一 安装ros

第一步记得把软件和更新里的源代码勾选上

covins在ubuntu18.04下跑通数据集_第1张图片

设置软件源

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 keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

 安装

sudo apt-get update
sudo apt-get install ros-melodic-desktop-full

 初始化rosdep

sudo rosdep init
rosdep update

在这一步链接超时的概率非常大,网上的解决办法非常多,这里就不在赘述了。我是使用的科学上网工具。

配置环境

echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc
source ~/.zshrc

测试是否成功

分别打开三个终端,依次输入:

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

如果出现一只小乌龟并且可以用上下左右键操控就代表安装成功了。

covins在ubuntu18.04下跑通数据集_第2张图片

二 安装COVINS依赖

sudo apt-get update
sudo apt-get install doxygen libsuitesparse-dev libyaml-cpp-dev libvtk6-dev python3-wstool libomp-dev libglew-dev
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install python3-catkin-tools

 建立工作空间:


为 COVINS创建一个工作空间 ~/ws/covins_ws

cd ~
mkdir -p ws/covins_ws/src
cd ~/ws/covins_ws
catkin init
catkin config --extend /opt/ros/melodic/
catkin config --merge-devel
catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo

三 安装COVINS

我们提供了一个脚本 (covins/install_file.sh),如果环境设置正确,它将执行 COVINS 的完整安装,包括后端、前端和第三方包。 如果安装失败,我们强烈建议手动一一执行构建脚本中的步骤。 如果多次执行,该脚本在某些情况下可能无法正确安装。

cd ~/ws/covins_ws/src
git clone https://github.com/VIS4ROB-lab/covins.git
cd ~/ws/covins_ws
chmod +x src/covins/install_file.sh
./src/covins/install_file.sh 8

参数 8 是可选的,它指定构建过程应该使用的作业数。如果电脑比较卡就把参数设置小一些。

为 ORB-SLAM3 前端安装 ROS 支持

安装vision_opencv:

cd ~/ws/covins_ws/src
git clone https://github.com/ros-perception/vision_opencv.git
cd cd vision_opencv/
git checkout melodic

添加opencv3_catkin依赖项

打开~/ws/covins_ws/src/vision_opencv/cv_bridge/CMakeLists.txt

find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs)
改为
find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs opencv3_catkin)

covins在ubuntu18.04下跑通数据集_第3张图片

保存后运行

source ~/ws/covins_ws/devel/setup.bash
catkin build cv_bridge
catkin build ORB_SLAM3

四 下载数据集

数据集链接:EuRoC dataset

根据你的需求选择下载红框里的1-5个数据集

 covins在ubuntu18.04下跑通数据集_第4张图片

解压后保存在/home/xx/datasets中 (以我为例)

打开~/ws/covins_ws/src/covins/orb_slam3/covins_examples

 里面共有7个sh文件,前五个分别对应上图红框里的五个数据集,mh123为依次运行前三个数据集。

covins在ubuntu18.04下跑通数据集_第5张图片

 使用哪个数据集,就修改相应sh文件内的数据集路径:

covins在ubuntu18.04下跑通数据集_第6张图片

五 运行COVINS

更改~/ws/covins_ws/src/covins/covins_comm/config/config_comm.yaml中的sys.server_ip,改成自己的IP地址,IP地址通过ifconfig查看。

如果ifconfig命令无效,代表没有安装。安装一下就可以了。

sudo apt-get install net-tools

covins在ubuntu18.04下跑通数据集_第7张图片

打开一个终端,运行 COVINS 服务器后端

source ~/ws/covins_ws/devel/setup.bash
roscore

打开一个终端,启动 COVINS 后端

source ~/ws/covins_ws/devel/setup.bash
rosrun covins_backend covins_backend_node

打开一个终端,运行 ORB-SLAM3 前端

source ~/ws/covins_ws/devel/setup.bash
./euroc_examples_mh123_vigba.sh(随便举例)

打开一个终端,可视化,建立可视化坐标系

roslaunch ~/ws/covins_ws/src/covins/covins_backend/launch/tf.launch

打开一个终端,启动rviz

rviz -d ~/ws/covins_ws/src/covins/covins_backend/config/covins.rviz

covins在ubuntu18.04下跑通数据集_第8张图片

由此便完成covins数据集运行,但是他是一个数据集跑完再跑下一个的,与现实中多机协同的情况不太符合,如果你想要同时运行多个数据集的话,在第三步,多开几个终端分别运行前五个sh文件就可以了。

六 同时运行多数据集

为了简化操作,一个一个终端的打开再输入代码实在繁琐,如果想要多数据集同时运行会更加麻烦,我自己写了一个sh文件可以一键启动,分享给大家。

start.sh文件具体代码如下:

#!/bin/bash
pathDatasetEuroc='/home/xy/datasets'

source ~/ws/covins_ws/devel/setup.bash
{
gnome-terminal -t "roscore" -- bash -c "roscore;exec bash;"
gnome-terminal -t "covins_backend_node" -- bash -c "rosrun covins_backend covins_backend_node;exec bash;"
sleep 1s
gnome-terminal -t "dataset1" -- bash -c "cd ~/ws/covins_ws/src/covins/orb_slam3/covins_examples; ./../Examples/Monocular-Inertial/mono_inertial_euroc ./../Vocabulary/ORBvoc.txt ./../Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH_01_easy ./../Examples/Monocular-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_monoi;exec bash;"
sleep 1s
gnome-terminal -t "dataset2" -- bash -c "cd ~/ws/covins_ws/src/covins/orb_slam3/covins_examples; ./../Examples/Monocular-Inertial/mono_inertial_euroc ./../Vocabulary/ORBvoc.txt ./../Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH_02_easy ./../Examples/Monocular-Inertial/EuRoC_TimeStamps/MH02.txt dataset-MH02_monoi;exec bash;"
sleep 1s
gnome-terminal -t "dataset3" -- bash -c "cd ~/ws/covins_ws/src/covins/orb_slam3/covins_examples; ./../Examples/Monocular-Inertial/mono_inertial_euroc ./../Vocabulary/ORBvoc.txt ./../Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH_03_medium ./../Examples/Monocular-Inertial/EuRoC_TimeStamps/MH03.txt dataset-MH03_monoi;exec bash;"
sleep 1s
gnome-terminal -t "dataset4" -- bash -c "cd ~/ws/covins_ws/src/covins/orb_slam3/covins_examples; ./../Examples/Monocular-Inertial/mono_inertial_euroc ./../Vocabulary/ORBvoc.txt ./../Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH_04_difficult ./../Examples/Monocular-Inertial/EuRoC_TimeStamps/MH04.txt dataset-MH04_monoi;exec bash;"
sleep 1s
gnome-terminal -t "dataset5" -- bash -c "cd ~/ws/covins_ws/src/covins/orb_slam3/covins_examples; ./../Examples/Monocular-Inertial/mono_inertial_euroc ./../Vocabulary/ORBvoc.txt ./../Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH_05_difficult ./../Examples/Monocular-Inertial/EuRoC_TimeStamps/MH05.txt dataset-MH05_monoi;exec bash;"
}

sleep 1s
gnome-terminal -t "visual launch" -- bash -c "roslaunch ~/ws/covins_ws/src/covins/covins_backend/launch/tf.launch;exec bash;"
gnome-terminal -t "visual rviz" -- bash -c "rviz -d ~/ws/covins_ws/src/covins/covins_backend/config/covins.rviz;exec bash;"

为了防止报错,可以先给这个文件权限

sudo chmod -R 777 start.sh 

然后再运行start.sh文件就可以直接同时运行5个数据集。

covins在ubuntu18.04下跑通数据集_第9张图片

具体效果可以看我发在b站的视频 COVINS论文复现,同时跑4个EuRoC数据集测试

你可能感兴趣的:(ubuntu,linux)