在ubuntu18.04系统上使用ROS跑ORB-SLAM3时遇到的问题总结
1.跑TUM_VI数据集dataset-corridor4_512
时,从tum_vi_example.sh
中复制对应的运行命令,输入命令后提示找不到对应的TUM_512.yaml
文件,查找对应路径发现只有一个TUM-VI.yaml
应该是作者新发布的版本进行了删改,tum_vi_example.sh
是作者早期发布的版本里提供的脚本,但是后来版本更新时不知道为什么给删掉了,找了一下作者以前发行版本的代码是有TUM_512.yaml
这个文件的,对比了一下两个文件的相关参数是一致的,只有个别参数变量不一样,所以在终端将TUM_512.yaml
替换为TUM-VI.yaml
即可。
[rosbuild] rospack found package “ORB_SLAM3” at “”,but the current directory is “xxx/ORB_SLAM3/Examples/ROS/ORB_SLAM3”.You should double-check your ROS_PACKAGE_PATH to ensure that package are found in te correct precedence order.
提示说ROS包路径有问题。这是因为你并没有把你当前的ROS代码路径添加到ROS_PACKAGE_PATH
环境变量中,导致找不到。解决办法也很简单,sudo gedit ~/.bashrc
打开编辑器,然后再末尾添加如下内容(注意对应路径要换成你自己的):
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:YOUR_PATH/Examples/ROS/ORB_SLAM3
2.ModuleNotFoundError: No module named ‘rospkg’
ModuleNotFoundError: No module named 'rospkg'
CMake Error at /opt/ros/melodic/share/ros/core/rosbuild/private.cmake:77 (message):[rosbuild] Syntax check of ORB_SLAM3/manifest.xml failed; aborting
Call Stack (most recent call first):/opt/ros/melodic/share/ros/core/rosbuild/public.cmake:174 (_rosbuild_check_manifest)CMakeLists.txt:7 (rosbuild_init)-- Configuring incomplete, errors occurred!
See also "/home/lusx/Demos/ORB-SLAM3/ORB_SLAM_uz/Examples_old/ROS/ORB_SLAM3/build/CMakeFiles/CMakeOutput.log".
解决方式:
pip install rospkg //更新方式1
sudo apt-get install python-rospkg //更新方式2
3./ImuTypes.h:29:10: fatal error: sophus/se3.hpp: No such file or directory
在ROS
目录下的CMakeLists.txt
的include_directories
加一句
${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus
4.ROS版本编译成功之后,运行如下命令,出现segmentation fault(core dumped)
rosrun ORB_SLAM3 Mono_Inertial ../../../Vocabulary/ORBvoc.txt TUM-VI.yaml true
将ORB-SLAM3目录和ROS/ORBSLAM3目录下的CMakeLists.txt中opencv的版本换成3.2.0,然后重新编译后解决,成功出现UI界面
5.程序跑起来后,播放数据集并将相机和IMU的topic名称转换成ORBSLAM3需要的名称,但是系统没有订阅到相关话题,UI界面无图像显示,通过rqt_graph查看发现系统只订阅到了imu的数据
原因:ROS系统下双目和单目订阅的话题是不同的,所以需要转换成不同的话题名称,而且单目的相机只需要转换cam0一个相机的就可以了,,流泪。。。
跑单目SLAM
# 启动ROS
roscore
# 启动程序
rosrun ORB_SLAM3 Mono_Inertial ../../../Vocabulary/ORBvoc.txt ../../Monocular-Inertial/EuRoC.yaml true
# 播放数据集
rosbag play ~/data/EuRoc/MH_01_easy.bag /cam0/image_raw:=/camera/image_raw /imu0:=/imu
6.跑双目程序报错
Input sensor was set to: Stereo-Inertial
Loading settings from TUM-VI.yaml
Camera1.overlappingBegin required parameter does not exist, aborting...
OpenCV Error: Assertion failed (tlsSlots.size() > slotIdx) in releaseSlot, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/system.cpp, line 1092
terminate called after throwing an instance of 'cv::Exception'what(): /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/system.cpp:1092: error: (-215) tlsSlots.size() > slotIdx in function releaseSlot
原因:虽然单目和双目,以及文件夹Example
Example_old
中的yaml
文件的名称都是一样的,但是不可以通用,,如果跑Stereo_Inertial
则需要使用Example_old/Stereo-Inertial/
中相应的文件,再次流泪。。。
跑双目数据集
#启动ROS
roscore
#启动程序
rosrun ORB_SLAM3 Stereo_Inertial ../../../Vocabulary/ORBvoc.txt ../../Stereo-Inertial/EuRoC.yaml true
#播放数据集
rosbag play ~/data/EuRoc/MH_01_easy.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw /imu0:=/imu
放一张漂亮的轨迹图
在ubuntu18.04系统上使用ROS跑ORB-SLAM3时遇到的问题总结相关推荐
- 基于arm开发板在ubuntu18.04系统上编译vlc播放器
前言 VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议.接下来将通过vlc源码进行编译 环境 arm64开发硬件 ubun ...
- 源码编译Ros, Ubuntu18.04系统使用源码编译Ros1,出错集合及其解决办法
官方的介绍http://wiki.ros.org/kinetic/Installation中提到了,脚本安装的方法it is available for Ubuntu Wily (15.10) and ...
- 【githubshare】基于 C 语言编写的一款 2D 太空射击游戏,已在 Windows 10 和 Ubuntu Linux 16.04 系统上跑通测试
基于 C 语言编写的一款 2D 太空射击游戏:space-shooter.c,已在 Windows 10 和 Ubuntu Linux 16.04 系统上跑通测试. GitHub:github.com ...
- ubuntu18.04 ros-melodic 在安装ros依赖包时总是出现E软件包无法定位
ubuntu18.04 ros-melodic 在安装ros依赖包时总是出现E软件包无法定位 鱼香ROS介绍: 鱼香ROS是由机器人爱好者共同组成的社区,欢迎一起参与机器人技术交流. 进交流群请加机器 ...
- ubuntu18.04桌面版安装ROS软件
机器人操作系统(ROS)入门 文章目录 机器人操作系统(ROS)入门 ROS简介 什么是ROS ROS产生.发展和壮大的原因 ubuntu18.04桌面版安装ROS软件并运行小海龟实例 ROS的安装 ...
- 如何快速在Ubuntu18.04.1上安装k8s1.20的简明教程
快速在Ubuntu18.04.1上安装k8s1.20 k8s官网 Install Tools kubectl minikube kubeadm Ubuntu18.04.1上k8s1.20安装教程 安装 ...
- Ubuntu18.04系统下安装IDL8.4版本(破解版)
Ubuntu18.04系统下安装IDL8.4版本(破解版) 为了安装IDL,把硬盘都弄坏了的我已经不知道重装了多少遍IDL了/(ㄒoㄒ)/~~ 踩了N多的坑,遇到N多问题,这一次终于算是安装好,可以成 ...
- RK3399核心板,装Ubuntu18.04系统,LVDS屏幕配置
使用RK3399核心板CORE-3399-JD4,接口板是自制的,采用MIPI接口转LVDS,现在在3399的板子上装ubuntu18.04系统,在该系统上点亮LVDS屏幕. 1.首先安装Linux系 ...
- Ubuntu18.04系统下,gcc编译过程分析、命令参数介绍及ELF文件格式学习
GCC编译器背后的故事及常用命令.了解ELF文件格式 文章目录 GCC编译器背后的故事及常用命令.了解ELF文件格式 前言 一.GCC简介 二.GCC背后的战友 1.Binutils 2.C运行库 三 ...
- 基于30系显卡以及Ubuntu18.04系统的YOLOv3环境搭建和训练模型以及测试
基于30系显卡以及Ubuntu18.04系统的YOLOv3环境搭建和训练模型以及测试 安装环境 下面是官网对N卡框架以及驱动和cuda版本的部分对应关系 驱动 (可以跳过这段安装,你可以在安装CUDA ...
最新文章
- 设计模式之代理模式(Proxy Pattern)
- vi/vim 命令手册(初级篇)
- monty python-网易云音乐
- python快速编程入门例题-python编程入门知识练习
- 【Pthon入门学习】多级菜单小例子
- 程序员整理的各种不错的工具
- PHP 中文文件名 空格等 CURL 读取
- Android 在 Fragment 中使用 getActivity() NullPointException 的思考和解决办法
- 随机信号功率谱估计方法matlab仿真
- 利用EditPlus制作Anki记忆卡批量导入文件
- 基于c#的winform中图片放大后不清晰问题
- HDU 5857 Median(找中位数)
- 用Javascript 编写 HTML在线编辑器
- webview加载pdf
- Hyper-v带宽限制以及验证工具
- C++基础入门---9.项目:通讯录管理系统【P72~P83】
- Retrofit实现文件上传(二)
- 天地图解析(瓦片层级、比例尺、行列号计算)
- 仿射变换原理和其OpenCV-Python实现知识汇总
- 录屏软件哪个好?我推荐好用且免费的野葱
热门文章
- Touch Bar 和歌词的组合就很养眼不是吗?如何在 Touch Bar 上显示歌词?
- 数学笔记——导数1(导数的基本概念)
- 任天堂网站“要求的内容有误”解决方法
- 程序员不做独行侠——沟通的核心是感受
- sif4j 字符串拼接和占位符的区别
- Backtrader量化平台教程(三)Indicator
- TIA protal与SCL从入门到精通(3)——软件单元基本介绍
- gerrit 将代码从一个分支合并到另外一个分支 Cherry Pick的使用
- python使用selenium爬取dell官网驱动(一):获取遍历各驱动的下载网址
- 综合实验-基于RS485的多机评分系统