当前位置:网站首页>【SLAM】DM-VIO(ros版)安装和论文解读
【SLAM】DM-VIO(ros版)安装和论文解读
2022-08-02 19:55:00 【iwander。】
1. dm-vio的安装
进入官方链接 ,基本上就是按照readme的操作来:
下载代码:
git clone https://github.com/lukasvst/dm-vio.git
安装gtsam:
sudo apt install libtbb-dev
git clone https://github.com/borglab/gtsam.git
cd gtsam
git checkout 4.2a6 # not strictly necessary but this is the version tested with.
mkdir build && cd build
cmake -DGTSAM_POSE3_EXPMAP=ON -DGTSAM_ROT3_EXPMAP=ON -DGTSAM_USE_SYSTEM_EIGEN=ON -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
make -j
sudo make install
安装opencv:
sudo apt-get install libopencv-dev
安装pangolin:
sudo apt install libgl1-mesa-dev libglew-dev pkg-config libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout v0.6
mkdir build
cd build
cmake ..
cmake --build .
sudo make install
这里要注意,如果电脑里没有pangolin,是可以编译的,但是不会生成可执行文件,所以这个仍然是必须安装的库,此外,必须是0.6版本。
git checkout v0.6
编译之前,进入到CMakeLists.txt, 19行增加regex:
find_package(Boost COMPONENTS system thread filesystem chrono serialization date_time timer regex)
编译:
cd dm-vio
mkdir build
cd build
cmake ..
make -j
编译完成后,在build/bin目录下,就能看到可执行文件dmvio_dataset。接下来,就可以按照官方的方法跑数据了。
2. dm-vio-ros的安装
接下来是ros插件的安装,由于市面上的代码和数据都是ros版的,使用起来比较方便。随便进入一个目录,推荐是刚刚安装的dm-vio的一个子目录下:
git clone https://github.com/lukasvst/dm-vio-ros.git
为了能让这个插件找到刚刚编译的dm-vio,所以一个偷懒的办法,就是在.bashrc加上一个环境变量:
sudo gedit ~/.bashrc
在最后面,加上:
export DMVIO_BUILD=/YOURPATH/TO/dm-vio/build
catkin_make之前,仍然需要修改CMakeLists.txt,85行之后,增加一句:
add_dependencies(${PROJECT_NAME}_node ${PROJECT_NAME}_generate_messages_cpp)
不然编译的时候会因为找不到生成的msg格式而报错,最后就是:
catkin_make
source devel/setup.bash
尝试euroc数据集:
首先要在config里加上euroc的相机模型:
echo -e "458.654 457.296 367.215 248.375 -0.28340811 0.07395907 0.00019359 1.76187114e-05\n752 480\ncrop\n640 480\n" > camera.txt
就可以跑了:
rosrun dmvio_ros node calib=/PATH/TO/camera.txt settingsFile=/PATH/TO/dm-vio/configs/euroc.yaml mode=1 nogui=0 preset=1 useimu=1 quiet=1 init_requestFullResetNormalizedErrorThreshold=0.8 init_pgba_skipFirstKFs=1
rosbag play V2_01_easy.bag
效果如下,直接法的VIO效果真炫!
3. 论文
论文地址:https://arxiv.org/pdf/2201.04114.pdf
TODO,待续
边栏推荐
- Flutter自带国际化适配自动生成方案
- A Review of Nature Microbiology: Focusing on the Algae--Ecological Interface of Phytoplankton-Bacteria Interactions
- 4KMILES加入艾盛集团,以更强劲的数字商务能力,加速中国跨境电商的全域全效增长
- Five data structures of Redis and their corresponding usage scenarios
- 云平台简介
- Translate My Wonderful | July Moli Translation Program Winners Announced
- golang刷leetcode 经典(9)为运算表达式设计优先级
- [安洵杯 2019]easy_web
- es 读流程源码解析
- Leetcode刷题——23. 合并K个升序链表
猜你喜欢
MySQL安装时一直卡在starting server
如何ES源码中添加一个自己的API 流程梳理
Electron User Guide Beginning Experience
解析List接口中的常用的被实现子类重写的方法
TPAMI2022 | TransCL:基于Transformer的压缩学习,更灵活更强大
Redis集群配置
J9 digital theory: the Internet across chain bridge has what effect?
Mysql安装流程 【压缩版】
如何解决图像分类中的类别不均衡问题?不妨试试分开学习表征和分类器
即时通讯开发移动端网络短连接的优化手段
随机推荐
Leetcode刷题——字符串相加相关题目(415. 字符串相加、面试题 02.05. 链表求和、2. 两数相加)
什么是乙二醇二乙酸酯(EGDA)?
ECCV 2022 | 通往数据高效的Transformer目标检测器
牛客题目——滑动窗口的最大值、矩阵最长递增路径、顺时针旋转矩阵、接雨水问题
AI科学家:自动发现物理系统的隐藏状态变量
PG's SQL execution plan
J9 Digital Currency Theory: Identifying Web3's New Scarcity: Open Source Developers
[AnXun cup 2019] easy_web
实现fashion_minst服装图像分类
ALV report learning summary
TPAMI2022 | TransCL:基于Transformer的压缩学习,更灵活更强大
SQL 入门之第一讲——MySQL 8.0.29安装教程(windows 64位)
实战:10 种实现延迟任务的方法,附代码!
OpenCV开发中的内存管理问题
golang 源码分析:uber-go/ratelimit
Five data structures of Redis and their corresponding usage scenarios
云平台简介
训练双塔检索模型,可以不用query-doc样本了?明星机构联合发文
You want the metagenomics - microbiome knowledge in all the (2022.8)
pytorch的tensor创建和操作记录