本文介绍运行项目[https://github.com/ZikangYuan/voxel_svio?tab=readme-ov-file]的流程,采用文中介绍的第三个数据集[https://sites.google.com/view/complex-urban-dataset],本文采用 urban39 数据集进行实验。环境为
ROS_VERSION=1
ROS_PYTHON_VERSION=3
ROS_PACKAGE_PATH=/opt/ros/noetic/share
ROSLISP_PACKAGE_DIRECTORIES=
ROS_ETC_DIR=/opt/ros/noetic/etc/ros
ROS_MASTER_URI=http://localhost:11311
ROS_ROOT=/opt/ros/noetic/share/ros
ROS_DISTRO=noetic
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
接下来修改代码: 在这个文件里把配置文件 config 改为 kaist2.yaml:file:src/voxel_svio/launch/vio_kaist.launch:
<launch>
<!-- Launch file for velodyne16 VLP-16 LiDAR -->
<arg name="rviz" default="true" />
<rosparam command="load" file="$(find voxel_svio)/config/kaist2.yaml" />
</launch>
在这个文件的开头指定监听 topic 流:file:src/voxel_svio/config/kaist2.yaml
common:
image_left_topic: "/stereo/left/image_raw"
image_right_topic: "/stereo/right/image_raw"
imu_topic: "/imu/data_raw"
以上完成了对 Voxel-svio 的修正;
这里的 SEQUENCE_NAME 是序列名字,bag 为录制流,官方数据集里是没有的,需要自己录制:首先下载 fileplayer:[https://github.com/RPM-Robotics-Lab/file_player_complex_urban.git]到~/catkin_ws/src
然后修改代码做以下增改
file:src/file_player/CMakeLists.txt 增加:
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
file:src/file_player/src/ROSThread.h 删去:
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <opencv2/core/core.hpp>
增加:
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
file:src/file_player/src/ROSThread.cpp 增加:
#include <opencv2/opencv.hpp>
#include <opencv2/imgcodecs.hpp>
然后运行:
cd ~/catkin_ws/src
wstool init
wstool merge file_player/depend_pack.rosinstall
wstool update
cd ~/catkin_ws
catkin_make
source devel/setup.bash
roslaunch file_player file_player.launch
得到文件播放器,选择解压后的urban39
文件夹,注意所有五个压缩文件都解压到这一个文件夹中,先运行这个:
rosbag record -O urban39.bag /stereo/left/image_raw /stereo/right/image_raw /imu/data_raw
然后播放文件,录制到足够多数据之后在以上命令的运行界面 CTRL+c 即可结束录制得到相应的 bag 文件urban39.bag
,然后
根据说明:
#Please go to the workspace of **Voxel-SVIO** and type:
cd Voxel-SVIO
source devel/setup.bash
roslaunch voxel_svio vio_kaist.launch
#Then open the terminal in the path of the bag file, and type:
rosbag play urban39.bag --clock -d 1.0
然后即可得到图像和相应的实时算法处理结果