rovio环境配置与测试笔记
参考博客 https://blog.csdn.net/yoouzx/article/details/53414400?utm_source=itdadao&utm_medium=referral
参考博客 https://blog.csdn.net/u012348774/article/details/81414264
参考博客 https://blog.csdn.net/xiaoxiaowenqiang/article/details/81192045
rovio开源代码 https://github.com/ethz-asl/rovio
kindr https://github.com/ethz-asl/kindr
1.rovio简介
ROVIO利用扩展卡尔曼滤波进行状态估计,惯性测量用于滤波器的状态传递过程;视觉信息在滤波器更新阶段使用。ROVIO中许多非常吸引人的特性。首先,ROVIO使用速度更快的FAST来提取角点,其三维坐标用向量和距离表示;其次,所有角点是通过图像块进行描述,并通过视频流获取了多层次表达;最后利用IMU估计的位姿来计算特征投影后的光度误差,并将其用于后续优化。
优点:计算量小(EKF,稀疏的图像块)
缺点:没有闭环,没有mapping thread;误差会残留到下一时刻;对应不同的设备需要调参数,参数对精度很重要。
2.预配置
系统:Ubuntu 16.04
已安装:ROS Kinetic
ROS安装参考博客https://blog.csdn.net/guaijiaodie2064/article/details/83041721中的相关安装内容。
待安装:kindr,rovio
2.1. 新建catkinworkspace
mkdir -p ~/catkin_vio/src
cd ~/catkin_vio
catkin_make
2.2. 安装依赖项
sudo apt-get install freeglut3-dev
sudo apt-get install libglew-dev
2.3. 安装kindr
github上下载kindr,解压安装
- 安装依赖项(安装过完整ros此步可跳过)
sudo add-apt-repository ppa:ethz-asl/common
sudo apt-get update
sudo apt-get install ros-indigo-kindr-*
2.4. 进入kindr目录,安装
mkdir build
cd build
cmake ..
sudo make install
2.5. 安装rovio
进入新建的catkin_vio/src下
git clone https://github.com/ethz-asl/rovio
进入rovio目录下
git submodule update --init --recursive
退出到catkin_vio下
catkin_make rovio --cmake-args -DCMAKE_BUILD_TYPE=Release -DMAKE_SCENE=ON
catkin_make
3.运行数据集
- 下载数据集(rosbag格式,ASL Dataset: https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads ),放到rovio目录下,并在rovio目录下新建一个rovio目录。
- 修改rovio/launch/rovio_rosbag_node.launch中的filename参数,将其改为实际rosbag的目录
<param name="rosbag_filename" value="[your path]"/>
打开命令窗口运行roscore
source devel/setup.bash
roscore
打开新终端,进入catkin_vio工作空间运行
source devel/setup.bash
roslaunch rovio rovio_rosbag_node.launch