当前位置:网站首页>【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,待续
边栏推荐
猜你喜欢
In action: 10 ways to implement delayed tasks, with code!
Fetch 请求不转换BLOB正常显示GBK编码的数据
4KMILES加入艾盛集团,以更强劲的数字商务能力,加速中国跨境电商的全域全效增长
ShardingSphere-proxy +PostgreSQL implements read-write separation (static strategy)
4 kmiles join YiSheng group, with more strong ability of digital business, accelerate China's cross-border electricity full domain full growth
解析Collection接口中的常用的被实现子类重写的方法
牛客题目——滑动窗口的最大值、矩阵最长递增路径、顺时针旋转矩阵、接雨水问题
SQL 入门之第一讲——MySQL 8.0.29安装教程(windows 64位)
Leetcode刷题——字符串相加相关题目(415. 字符串相加、面试题 02.05. 链表求和、2. 两数相加)
特拉维夫大学 | Efficient Long-Text Understanding with Short-Text Models(使用短文本模型进行高效的长文本理解)
随机推荐
ssdp协议搜索GB28181设备
In action: 10 ways to implement delayed tasks, with code!
J9数字论:互联网跨链桥有什么作用呢?
【 LeetCode 】 1374. Generate each character string is an odd number
特拉维夫大学 | Efficient Long-Text Understanding with Short-Text Models(使用短文本模型进行高效的长文本理解)
golang刷leetcode 经典(9)为运算表达式设计优先级
【手撕AHB-APB Bridge】~ AMBA总线 之 APB
PyTorch分布式backends
LeetCode 622 设计循环队列[数组 队列] HERODING的LeetCode之路
Electron User Guide Beginning Experience
当TIME_WAIT状态的TCP正常挥手,收到SYN后…
ALV报表学习总结
模板的进阶
es DELETE index 源码分析
Async的线程池使用的哪个?
You want the metagenomics - microbiome knowledge in all the (2022.8)
SQL 入门之第一讲——MySQL 8.0.29安装教程(windows 64位)
【LeetCode】1374. 生成每种字符都是奇数个的字符串
云平台简介
TPAMI2022 | TransCL: based on the study the compression of the Transformer, more flexible and more powerful