如何把ethz-asl/rovio项目跑起来

1 项目地址

ethz-asl/rovio是什么项目就不多介绍了。
https://github.com/ethz-asl/rovio

2 环境要求

安装好ROS的环境,具体就不再这里展开,具体查看ros官网wiki。
我这里Ubuntu的版本是20.04,bash用的是zsh

3 代码依赖

如何把ethz-asl/rovio项目跑起来_第1张图片
使用ros编译的基本规范,src目录下分别下载这2个项目,也就是
如何把ethz-asl/rovio项目跑起来_第2张图片
https://github.com/ethz-asl/kindr)

4 如何编译

如果使用catkin_make编译,会遇到下面即将提到的第一个问题。
强烈建议使用catkin build rovio --cmake-args -DCMAKE_BUILD_TYPE=Release进行编译。

一定要加上--cmake-args -DCMAKE_BUILD_TYPE=Release参数选项,表示以release的方式编译代码,程序的执行效率更高,否则运行会出现明显的卡顿。

第一个问题&fix

使用catkin_make编译,错误提示如下。
如何把ethz-asl/rovio项目跑起来_第3张图片
解决方法,使用catkin_make_isolated,其原因是kindr这个项目并不是用catkin的方式管理的,而是用cmake的方式。

第二个错误&fix

提示未定义变量。
如何把ethz-asl/rovio项目跑起来_第4张图片
原因是作者开发时,使用的OpenCV是V2版本,现在我们的环境,OpenCV用的V4版本,其中有些变量已经不兼容了,所以需要根据OpenCV的版本更改变量的名称。
按照下面的方法修改2个文件,我是参考这个修改的:https://github.com/ethz-asl/rovio/pull/252

--- a/include/rovio/ImgUpdate.hpp
+++ b/include/rovio/ImgUpdate.hpp
@@ -586,8 +586,12 @@ ImgOutlierDetection,false>{
void commonPreProcess(mtFilterState& filterState, const mtMeas& meas){
assert(filterState.t_ == meas.aux().imgTime_);
for(int i=0;i

如何把ethz-asl/rovio项目跑起来_第5张图片

--- a/include/rovio/featureTracker.hpp
+++ b/include/rovio/featureTracker.hpp
@@ -125,7 +125,11 @@ class FeatureTrackerNode{
     pyr_.computeFromImage(img_,true);
 
     // Drawing
+#if (CV_MAJOR_VERSION <= 3)
     cvtColor(img_, draw_image_, CV_GRAY2RGB);
+#else
+    cvtColor(img_, draw_image_, cv::COLOR_GRAY2RGB);
+#endif

如何把ethz-asl/rovio项目跑起来_第6张图片

5 下载数据集

下载地址:
http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
如何把ethz-asl/rovio项目跑起来_第7张图片
我选择是第一个。如果使用浏览器下载比较慢,可以使用BitComet等类似的软件,速度会快不少。
数据集我放在workspace的datasets目录下,如下图所示,
image.png

**(非常重要)**在数据所在的目录下,手动新建一个rovio的文件夹。
后续程序运行,会在这个目录报错log,如果没有找到这个文件夹,程序会报错。

6 运行

第一步:修改launch文件

修改rovio/launch/rovio_rosbag_node.launch文件,指定上文中数据集所存放的路径。
如何把ethz-asl/rovio项目跑起来_第8张图片

第二步:加载launch文件

首先 source devel/setup.zsh或者source devel_isolated/setup.zsh
然后执行,roslaunch rovio rovio_rosbag_node.launch

如何把ethz-asl/rovio项目跑起来_第9张图片
到此为止,恭喜,程序可以顺利运行了。

你可能感兴趣的:(滤波,ubuntu,VIO,计算机视觉)