虽然论文里说ubuntu18和ubuntu20都可以,但是还是更推荐18.04,亲测20在安装时会报错。
第一步记得把软件和更新里的源代码勾选上
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
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
如果出现一只小乌龟并且可以用上下左右键操控就代表安装成功了。
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/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 是可选的,它指定构建过程应该使用的作业数。如果电脑比较卡就把参数设置小一些。
安装vision_opencv:
cd ~/ws/covins_ws/src
git clone https://github.com/ros-perception/vision_opencv.git
cd cd vision_opencv/
git checkout melodic
打开~/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)
保存后运行
source ~/ws/covins_ws/devel/setup.bash
catkin build cv_bridge
catkin build ORB_SLAM3
数据集链接:EuRoC dataset
根据你的需求选择下载红框里的1-5个数据集
解压后保存在/home/xx/datasets中 (以我为例)
打开~/ws/covins_ws/src/covins/orb_slam3/covins_examples
里面共有7个sh文件,前五个分别对应上图红框里的五个数据集,mh123为依次运行前三个数据集。
使用哪个数据集,就修改相应sh文件内的数据集路径:
更改~/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 服务器后端
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数据集运行,但是他是一个数据集跑完再跑下一个的,与现实中多机协同的情况不太符合,如果你想要同时运行多个数据集的话,在第三步,多开几个终端分别运行前五个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个数据集。
具体效果可以看我发在b站的视频 COVINS论文复现,同时跑4个EuRoC数据集测试