Launch VINS example (Euroc dataset) in RTAB-MAP
$ roslaunch rtabmap_ros euroc_datasets.launch args:="-d RGBD/CreateOccupancyGrid false Odom/Strategy 9 OdomVINS/ConfigPath ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml" MH_seq:=true raw_images_for_odom:=true
$ cd ~/Downloads
$ rosbag play --clock MH_01_easy.bag
ERROR: cannot launch node of type [rtabmap_ros/yaml_to_camera_info.py]: can't locate node [yaml_to_camera_info.py] in package [rtabmap_ros]
ERROR: cannot launch node of type [rtabmap_ros/yaml_to_camera_info.py]: can't locate node [yaml_to_camera_info.py] in package [rtabmap_ros]
ERROR: cannot launch node of type [stereo_image_proc/stereo_image_proc]: stereo_image_proc
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/william/test_ws/src
ROS path [2]=/home/william/truss_ws/src
ROS path [3]=/home/william/catkin_ws/src
ROS path [4]=/opt/ros/kinetic/share
ROS path [5]=/home/william/Documents/demos/ORB_SLAM2/Examples/ROS
process[imu_base_link-5]: started with pid [5521]
process[camera_imu_link-6]: started with pid [5522]
process[leica_base_link-7]: started with pid [5531]
ERROR: cannot launch node of type [rtabmap_ros/point_to_tf.py]: can't locate node [point_to_tf.py] in package [rtabmap_ros]
Answer
I will never be able to launch node yaml_to_camera_info.py & point_to_tf.py, because they are not built from source but just files I put in the directory /opt/ros/kinetic/share/rtabmap_ros/scripts/ . I install rtabmap by command sudo apt install.
ERROR: cannot launch node of type [rtabmap_ros/rgbd_odometry]: can't locate node [rgbd_odometry] in package [rtabmap_ros]
ERROR: cannot launch node of type [rtabmap_ros/rtabmap]: can't locate node [rtabmap] in package [rtabmap_ros]
ERROR: cannot launch node of type [rtabmap_ros/rtabmapviz]: can't locate node [rtabmapviz] in package [rtabmap_ros]
Solution
$ source /opt/ros/kinetic/setup.bash
$ source ~/catkin_ws/devel/setup.bash
IF after sourcing .bash, the same errors still exist, it's time to rebuild rtabmap with a patch related to the ROS package VINS-Fusion.
First of all, clone the repository from GitHub. (Assume you have installed the prerequisites.)
$ cd ~/catkin_ws/src
$ git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
Then install this patch. To do this, you download, extract then put the patch in the directory of VINS-Fusion. (Maybe a ladder to some you know well will be use to check the patch and download it).
$ cd /home/william/catkin_ws/src/VINS-Fusion
$ git apply vins-fusion_e72b5f7.patch
$ cd ~/catkin_ws
$ catkin_make
Then rebuild rtabmap successfully. Some difference seems like this:
...
Scanning dependencies of target vins_lib
...
[ 44%] Building CXX object VINS-Fusion/vins_estimator/CMakeFiles/vins_lib.dir/src/estimator/estimator.cpp.o
...
[ 92%] Linking CXX shared library /home/william/catkin_ws/devel/lib/libvins_lib.so
[ 96%] Built target vins_lib
[ 96%] Linking CXX executable /home/william/catkin_ws/devel/lib/vins/kitti_gps_test
[ 96%] Linking CXX executable /home/william/catkin_ws/devel/lib/vins/vins_node
[ 97%] Linking CXX executable /home/william/catkin_ws/devel/lib/vins/kitti_odom_test
[ 98%] Built target kitti_gps_test
[ 98%] Built target kitti_odom_test
[100%] Built target vins_node
Reference:
[Error] DBDriverSqlite3.cpp:398::connectDatabaseQuery() Opened database version (0.19.1) is more recent than rtabmap installed version (0.17.6). Please update rtabmap to new version!
Launch VINS example (Euroc dataset) in RTAB-MAP的更多相关文章
- 谈谈RDD、DataFrame、Dataset的区别和各自的优势
在spark中,RDD.DataFrame.Dataset是最常用的数据类型,本博文给出笔者在使用的过程中体会到的区别和各自的优势 共性: 1.RDD.DataFrame.Dataset全都是spar ...
- APACHE SPARK 2.0 API IMPROVEMENTS: RDD, DATAFRAME, DATASET AND SQL
What’s New, What’s Changed and How to get Started. Are you ready for Apache Spark 2.0? If you are ju ...
- Along with all the above benefits, you cannot overlook the space efficiency and performance gains in using DataFrames and Dataset APIs for two reasons.
Of all the developers’ delight, a set of APIs that makes them productive, that are easy to use, and ...
- Launch VINS-Mono with Realsense D435i in RTAB-Map
Preparation: Remap topic from D435i to rtabmap Feed the odometry to rtabmap In the rqt_graph of vins ...
- Detectron2源码阅读笔记-(三)Dataset pipeline
构建data_loader原理步骤 # engine/default.py from detectron2.data import ( MetadataCatalog, build_detection ...
- spark2.0新特性之DataSet
1.Spark SQL,DataFrame,DataSet的错误类型检测时机 spark SQL:其类型检测与语法检测是在运行时检测的 DataFrame:在spark2.0以前的版本中,DataFr ...
- 三维视觉、SLAM方向全球顶尖实验室汇总
本文作者 任旭倩,公众号:计算机视觉life,编辑成员 欧洲 英国伦敦大学帝国理工学院 Dyson 机器人实验室 http://www.imperial.ac.uk/dyson-robotics-la ...
- ROS:ubuntuKylin17.04-Ros使用OrbSLAM2
忙于图像处理和DCNN,很长时间不使用ROS,重新安装系统后,再次使用ORB-SLAM2(ROS)进行三维重建和实时追踪的演示. 参考以前的文章:ROS:ubuntu-Ros使用OrbSLAM ORB ...
- 泡泡一分钟:FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM
FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM FMD Stereo ...
随机推荐
- 32位机,CPU是如何利用段寄存器寻址的
转自:http://blog.sina.com.cn/s/blog_640531380100xa15.html 32位cpu 地址线扩展成了32位,这和数据线的宽度是一致的.因此,在32位机里其实并不 ...
- Spring Cloud与分布式系统
本文不是讲解如何使用spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义. 背景 2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去” ...
- 委托BegionInvoke和窗体BegionInvoke
委托BegionInvoke是指通过委托方法执行多线程任务,例如: //定义委托成员变量 delegate void dg_DeleAirport(); //指定委托函数 dg_DeleAirpor ...
- Python中常用模块一
random模块 import random # 应用数学计算 print(random.random()) # 取随机小数 范围是 0-1之间 # 应用抽奖 , 彩票 print(random.ra ...
- Spring整合Junit4进行单元测试
一. 添加依赖包(maven) <dependency> <groupId>junit</groupId> <artifactId>junit</ ...
- Web项目开发性能优化解决方案
web开发性能优化---安全篇 1.ip验证 2.操作日志.安全日志.登录日志 3.SQL注入校验 4.权限管理 5.验证规范(前端.后端.数据库约束) 2014-10-29 08:04 2773 ...
- SSL认证
SSL认证 单向认证 1.发一串消息个对方 2.对方用私钥加密后返回 3.本方用对方的公钥解密,验证消息是否正确, 如果消息相同,则本方认可对方 双向认证 本方认证对方 对方认证本方
- shell动态替换变量
可以对env指定U 或者 L, 得到U或者L下的IP地址列表, env可作为shell的参数列表传入 env=UL_ips=(x.x.x.x y.y.y.y)U_ips=(w.w.w.w z.z ...
- Mybatis和Hibernate比较
作者:乌拉拉链接:http://www.zhihu.com/question/21104468/answer/58579295来源:知乎著作权归作者所有,转载请联系作者获得授权. 1.开发对比开发速度 ...
- 关于instanceof测试遇到的问题
今天上上课 用 instanceof关键字来判断某个对象是否属于某种数据类型.报错 代码如下 package cn.lijun.demo3; import cn.lijun.demo.Person; ...