在编译OpenVINS最新版本程序时,工程中package.xml采用了更新版本实现依赖关系
<?xml version="1.0"?>
<package format="3">
<!-- Package Information -->
<name>ov_msckf</name>
<version>2.6.0</version>
<description>
Implementation of a type-based error-state Kalman filter.
</description>
<url type="website">https://docs.openvins.com/</url>
<url type="bugtracker">https://github.com/rpng/open_vins/issues</url>
<url type="repository">https://github.com/rpng/open_vins</url>
<!-- Code Authors -->
<author email="pgeneva@udel.edu">Patrick Geneva</author>
<author email="keck@udel.edu">Kevin Eckenhoff</author>
<author email="ghuang@udel.edu">Guoquan Huang</author>
<maintainer email="pgeneva@udel.edu">Patrick Geneva</maintainer>
<!-- Licensing -->
<license>GNU General Public License v3.0</license>
<!-- ROS1: Dependencies needed to compile this package. -->
<buildtool_depend condition="$ROS_VERSION == 1">catkin</buildtool_depend>
<depend condition="$ROS_VERSION == 1">cmake_modules</depend>
<depend condition="$ROS_VERSION == 1">roscpp</depend>
<depend condition="$ROS_VERSION == 1">rosbag</depend>
<depend condition="$ROS_VERSION == 1">tf</depend>
<depend condition="$ROS_VERSION == 1">std_msgs</depend>
<depend condition="$ROS_VERSION == 1">sensor_msgs</depend>
<depend condition="$ROS_VERSION == 1">geometry_msgs</depend>
<depend condition="$ROS_VERSION == 1">nav_msgs</depend>
<depend condition="$ROS_VERSION == 1">visualization_msgs</depend>
<depend condition="$ROS_VERSION == 1">image_transport</depend>
<depend condition="$ROS_VERSION == 1">cv_bridge</depend>
<depend condition="$ROS_VERSION == 1">ov_core</depend>
<depend condition="$ROS_VERSION == 1">ov_init</depend>
详见ROS文档
既不是package format="1"页不是package format="2",OpenVINS用的package format="3",但是编译时候,tag中不能含有condition="$ROS_VERSION == 1",删除这个判断ROS版本的语句就行了,改后版本是<depend>ov_init</depend>