Installation of Ultimate SLAM
- Ubuntu 20.04
- ROS Noetic
- PPA repository for Focal (20.04 LTS) and Jammy (22.04 LTS):
sudo add-apt-repository ppa:inivation-ppa/inivation
sudo apt-get update
sudo apt-get install dv-gui
如果不科学上网可能会很慢或者执行不了
其他平台请参考官网:https://inivation.gitlab.io/dv/dv-docs/docs/getting-started.html#ubuntu-linux
- For Ceres, you need to install the following packages:
sudo apt install liblapack-dev libblas-dev
- 建立工作区间,并配置编译模式为release,如果是debug模式,跑数据集的时候会卡顿:
mkdir -p ~/uslam_ws/src && cd ~/uslam_ws
catkin config --extend /opt/ros/noetic --cmake-args -DCMAKE_BUILD_TYPE=Release
- 在src下克隆uslam项目,并手动克隆第三方依赖包:
git clone https://github.com/uzh-rpg/rpg_ultimate_slam_open.git
git clone dependencies.yaml文件里面所涉及的包,在rpg_ultimate_slam_open里面
- 编译有点点慢,耐心等待下就好了
catkin build ze_vio_ceres
Run Examples
这里具体看他们的文档吧:链接
说下效果,根据这位大佬提供的参数,用EVO工具评估公开数据集基本能复现论文E+I模式下的精度,17年那篇,E+F+I模式没有跑过
Run Live Demo
Calibration
目前实验室拥有DVXplorer这款事件相机,通过dv-gui软件进行相机内参标定,事件相机和IMU联合标定变换矩阵T,但效果不好,T设置为单位矩阵还算可以。
新建一个launch文件和yaml文件
复制一份 ijrr17_events_only.launch,改名 live_DVXplorer.launch,在 calibration 目录下新建一个yaml文件,填入相机内参
launch文件里面的camera_name改为指定的相机配置yaml文件
--calib_filename=$(find ze_vio_ceres)/../../calibration/$(arg camera_name).yaml
- 运行事件相机sdk
roslaunch dvs_renderer dvxplorer_mono.launch
- 运行UltimateSLAM E+I 模式
source devel/setup.bash
roslaunch ze_vio_ceres live_DVXplorer.launch
- 最后说下效果,在小场景中,高速动态下确实有着惊人的表现,事件合成帧也非常清晰(这个得多尝试几组参数),但是并没有调试出他们组拿着甩来甩去还能跟踪上效果,实在是令人羡慕。