博客地址:https://www.cnblogs.com/zylyehuo/

基于ORB-SLAM3库搭建SLAM系统详见之前的博客

基于ORB-SLAM3库搭建SLAM系统 - zylyehuo - 博客园 (cnblogs.com)

参考链接

ORB-SLAM3 v1.0 编译问题解决

/usr/bin/env: "python\r": 没有那个文件或目录

效果图

STEP1:将 Examples_old 中的 ROS 文件夹复制到 /home/yehuo/SLAM/ORB_SLAM3-master/Examples/

打开终端输入指令: vim ~/.bashrc 打开用户根目录下的.bashrc文件

添加ROS功能包路径 export

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/yehuo/SLAM/ORB_SLAM3-master/Examples/ROS

此处路径需要根据每个人放置功能包的位置进行调整,不能直接复制

STEP2:授权+编译

chmod +x build_ros.sh ##修改Build_ros.sh权限

./build_ros.sh ##安装 orb_slam 中的 ros模块

STEP3:创建 camera.py 文件

#!/usr/bin/env python
#!coding-utf -8 import rospy
from sensor_msgs.msg import Image
import cv2
from cv_bridge import CvBridge
import sys def webcamImagePub(): rospy.init_node('cam_pub',anonymous=True)
img_pub = rospy.Publisher('camera/image_raw',Image,queue_size=2)
rate = rospy.Rate(20) cap = cv2.VideoCapture(0)
scaling_factor = 0.3
bridge = CvBridge() if not cap.isOpened():
sys.stdout.write("zzz")
return -1 count = 0 while not rospy.is_shutdown():
ret,frame = cap.read()
if ret:
count = count + 1
else:
rospy.loginfo("xxx")
if count == 2:
count = 0
msg = bridge.cv2_to_imgmsg(frame)
img_pub.publish(msg)
print("yyy")
rate.sleep()
if __name__ == '__main__':
try:
webcamImagePub()
except rospy.ROSInterruptException:
pass

将camera.py放入 /Examples/ROS/ORB_SLAM3/scripts/ 文件夹下,(scripts文件夹需要自己创建)

打开终端执行 chmod+x camera.py 赋予可执行权限

STEP4:配置连接电脑摄像头

(1)在windows中使用 win + R 快捷键开启运行搜索界面

(2)输入services.msc,在服务中找到 VMware USB Arbitration Service,使其处于 ‘正在运行’ 状态

(3)在VMware虚拟机->设置选项下,调整USB控制器为兼容USB3.1状态

(4)连接电脑摄像头

STEP5:运行测试

【1】运行 camera.py 文件

打开终端

执行 roscore

打开新的终端

执行 rosrun ORB_SLAM3 camera.py

【2】启动例程

在以下路径下打开终端

在终端输入以下指令 === 注意修改路径

rosrun ORB_SLAM3 Mono /home/yehuo/SLAM/ORB_SLAM3-master/Vocabulary/ORBvoc.txt /home/yehuo/SLAM/ORB_SLAM3-master/Examples/Monocular/TUM1.yaml

问题汇总

(1)fatal error:sophus/se3.hpp

(2)/usr/bin/env: "python\r": 没有那个文件或目录

解决方法,参考以下链接

/usr/bin/env: "python\r": 没有那个文件或目录

(3)./build_ros.sh 步骤中报错

解决办法,参考以下链接

ORB-SLAM3 v1.0 编译问题解决

SLAM系统--开启摄像头连接的更多相关文章

  1. CentOS 系统 MySQL 5.7 开启远程连接

    CentOS 系统安装好 MySQL 后,默认情况下不支持用户通过非本机连接上数据库服务器,下面是解决方法: 1.在控制台执行 mysql -u root -p 系统提示输入数据库 root 用户的密 ...

  2. ADB命令指令控制Android系统的WIFI连接开启/关闭状态

    Android系统的usb调试已开启,连接电脑(有ADB环境) 1.在cmd中,进入shell指令模式 adb shell 2.进入ROOT指令模式 su 3. 打开WIFI指令 svc wifi e ...

  3. (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍

          首页 视界智尚 算法技术 每日技术 来打我呀 注册     SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...

  4. 远程连接mysql,mysql如何开启远程连接

    很多时候,mysql只需要开本地连接,也就是本机(服务器本身)连接就可以,默认也是这样,默认也不支持远程连接 但有的时候,我们需要将mysql独立出一台主机或数据库,放到另一台机器的时候,这时,就需要 ...

  5. Ubuntu开启远程连接

    Ubuntu开启远程连接 author:headsen chen   2017-10-13   09:47:38 个人原创,严禁转载,违者追究法律责任: apt-get update apt-get ...

  6. Linux 系统开启随机端口数量 调优

    Linux系统随机端口 默认Linux系统开启的随机端口范围为 32768 ~ 65535.客户端连接服务监听端口需要使用到随机端口连接. Linux系统随机端口调优 1.添加内核配置参数:/etc/ ...

  7. 虚拟机virtualBox安装linux系统 xshell远程连接linux

    虚拟机virtualBox安装linux系统 xshell远程连接linux 虚拟机概念: 通过软件, 使用虚拟化技术虚拟出电脑的硬件环境, 充当真实的电脑使用. 常见的虚拟软件: virtualBo ...

  8. SQL Server2008 R2开启远程连接总结

    ============================== SQL Server2008 R2开启远程连接(最全总结) ============================== 安装过程:适用W ...

  9. Mysql 5.7 开启远程连接

    1 在控制台执行 mysql -uroot -p 系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台 2 选择数据库 mysql -uroot -p use mysql; 开启远程 ...

  10. yum 安装 Mysql error ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 开启远程连接 修改登入密码 忘记root密码 配置防火墙规则 随手mark

    yum 安装 MYsql:        yum install mysql mysql-server mysql-devel -y 1.1 登入报错: ERROR 1045 (28000): Acc ...

随机推荐

  1. 68.C++中的const

      编写程序过程中,我们有时不希望改变某个变量的值.此时就可以使用关键字 const 对变量的类型加以限定. 初始化和const   因为const对象一旦创建后其值就不能再改变,所以const对象必 ...

  2. 基于el-cascader级联选择器实现只有最后一级可以多选(已发布到npm & github)

    github地址:地址 背景: 我们经常级联合选择器多选的需求,但是element UI提供的级联选择器并不能只多选最后一级,所以我考虑基于element UI的级联选择器优化一下,实现可以多选最后一 ...

  3. Java——多线程(代码)

    例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式  *  1.卖票过程中出现重票.错票 --->出现了线程的安全问题  *  2.问题出现的原因:当某个线程操作车票的 ...

  4. 1688关键字搜索新品数据API接口(item_search_new-按关键字搜索新品数据)

    1688关键字搜索新品数据API接口(item_search_new-按关键字搜索新品数据)代码接口教程如下: 公共参数 名称 类型 必须 描述key String 是 调用key(必须以GET方式拼 ...

  5. 系统优化脚本支持Ubuntu和CentOS

    系统优化脚本支持Ubuntu和CentOS 经常会部署各种用途的操作系统,但在这些工作中,我们会发现很多工作其实是重复性的劳动,操作的内容也是大同小异,基于这类情况,我们可以把相同的操作做成统一执行的 ...

  6. pandas之sorting排序

    Pands 提供了两种排序方法,分别是按标签排序和按数值排序.本节讲解 Pandas 的排序操作.下面创建一组 DataFrame 数据,如下所示: import pandas as pd impor ...

  7. AQS源码学习

    抽象队列同步器AQS AQS介绍 AQS提供一套框架用于实现锁同步机制,其通过一个 FIFO队列 维护线程的同步状态,实现类只需要继承 AbstractQueuedSynchronizer ,并重写指 ...

  8. JUC(五)Callable

    Callable接口 创建线程的几种方式 继承Thread类 实现Runnable接口 通过Callable接口 线程池 使用Runnable接口无法获取到线程返回的结果,因此在jdk1.5后java ...

  9. javasec(五)URLDNS反序列化分析

    这篇文章介绍 URLDNS 就是ysoserial中⼀个利⽤链的名字,但准确来说,这个其实不能称作"利⽤链".因为其参数不是⼀个可以"利⽤"的命令,⽽仅为⼀个U ...

  10. pandlepanlde-01-必备数学知识

    文章目录 必备数学知识 数学基础知识 高等数学 线性代数 行列式 矩阵 向量 线性方程组 矩阵的特征值和特征向量 二次型 概率论和数理统计 随机事件和概率 随机变量及其概率分布 多维随机变量及其分布 ...