Ubuntu20.04下用covins跑自己的数据集
covins安装官方教程地址:https://github.com/VIS4ROB-lab/covins
covins安装过程中自己遇到的问题
(反复了很多次,所以问题出现的顺序记不清了)
-
**CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by “opencv3_catkin”
with any of the following names:opencv3_catkinConfig.cmake
opencv3_catkin-config.cmake;解决:
(1)先全系统搜索opencvconfig,Ubuntu20.04默认的是opencv4,所以可能确实没有。如果确定无,先去安装OpenCV3。
(2)在Releases - OpenCV下载编译(依次mkdir build,cd build,cmake …,make)。
(3)修改~/ws/covins_ws/src/vision_opencv/cv_bridge/CMakeLists.txt :首先是添加opencv3_catkin依赖,将第4行find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs)改成find_package(catkin REQUIRED COMPONENTS rosconsole sensor_msgs opencv3_catkin);之后,把后面关于opencv4的部分注释掉。
-
缺少boostdesc_bgm.i 一系列文件,下载完并copy过去后又显示缺少opencv2/xfeatures2d/cuda.hpp
解决:
出现该问题的原因就是他下载的Opencv_conrtib包里缺文件。
(1)方法一:可参照https://blog.csdn.net/qq_42614598/article/details/121321960。
(2)方法二:直接多下载几遍,直到网络很好的时候能下载成功。具体做法可能是多运行几遍./src/covins/install_file.sh 8这一步。安装了有一段时间了记不太清了。
covins跑自己的数据集
在covins_ws/src/covins/orb_slam3/Examples/ROS/ORB_SLAM3/launch路径下写自己的launch文档,可以参照官方的launch_ros_euroc.launch(如下)。
<?xml version="1.0"?>
<launch>
<arg name="voc" default="/home/pschmuck/ws/covins_ws/src/covins/orb_slam3/Vocabulary/ORBvoc.txt" />
<arg name="cam" default="/home/pschmuck/ws/covins_ws/src/covins/orb_slam3/Examples/Monocular-Inertial/EuRoC.yaml" />
<node pkg="ORB_SLAM3" type="Mono_Inertial" name="ORB_SLAM3_monoi0" args="$(arg voc) $(arg cam)" output="screen">
<remap from="/camera/image_raw" to="/cam0/image_raw"/>
<remap from="/imu" to="/imu0"/>
</node>
</launch>
在这里我更改了两个地方:
- 第6行.yaml,参照他的路径,写了自己的.yaml。其实就是把相机和Imu初始化的一些参数,改成自己的数据。
- 第11、12行的remap。
如果是要remap一个该节点想要接收的的target_topic,而实际被另外一个节点发布的话题是source_topic,应该是<remap from=“/target_topic” to=“/source_topic” /
(摘自http://t.csdn.cn/rZJTk)
所以这个地方应该把to后面的topic改成我们的数据集发布的topic。可以用下面的指令查看自己的bag包的topic:
rosbag info xx.bag
个人记录一下covins跑两个数据集的指令(和官网一致)
roscore
rosrun covins_backend covins_backend_node
roslaunch covins_backend tf.launch
roslaunch ORB_SLAM3 launch_ros_euroc.launch
roslaunch ORB_SLAM3 launch_ros_euroc_second_agent.launch
rosbag play MH_01_easy.bag(去数据集所在的路径下)
rosbag play MH_02_easy.bag --start 35 /cam0/image_raw:=/cam0/image_raw1 /cam1/image_raw:=/cam1/image_raw1 /imu0:=/imu1
rviz -d config/covins.rviz(不在工作空间下的话要用rviz -d ~/ws/covins_ws/src/covins/covins_backend/config/covins.rviz,他配置好的rviz用起来比较方便)