SLAM系统--开启摄像头连接

slam,系统,开启,摄像头,连接 · 浏览次数 : 152

小编点评

**基于ORB-SLAM3库搭建SLAM系统** **步骤 1:将 Examples_old 中的 ROS 文件夹复制到 /home/yehuo/SLAM/ORB_SLAM3-master/Examples/** 将 Examples_old 中的 ROS 文件夹复制到 /home/yehuo/SLAM/ORB_SLAM3-master/Examples/ **步骤 2:授权+编译** ```bash chmod +x build_ros.sh ``` **步骤 3:创建 camera.py 文件** ```python #!/usr/bin/env python#!coding-utf -8 import rospy from sensor_msgs.msg import Image import cv2 import CvBridge sysdef 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 ``` **步骤 4:配置连接电脑摄像头** 1. 在 Windows 中使用 win + R 快捷键开启运行搜索界面。 2. 输入 services.msc。 3. 在服务中找到 VMware USB Arbitration Service,使其处于 ‘正在运行’ 状态。 4. 在 VMware虚拟机->设置选项下,调整USB控制器为兼容USB3.1状态。 5. 连接电脑摄像头。 **步骤 5:运行测试** 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 ``` **问题解决** * **fatal error:sophus/se3.hpp(2)/usr/bin/env: \"python\\r\": 没有那个文件或目录**:解决方案:确保 ORB_SLAM3 库已安装并正确配置。 * **/usr/bin/env: \"python\\r\": 没有那个文件或目录**:解决方案:确保 ROS 环境变量已设置正确。

正文

博客地址: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系统--开启摄像头连接相似的内容:

SLAM系统--开启摄像头连接

> 博客地址:https://www.cnblogs.com/zylyehuo/ > 基于ORB-SLAM3库搭建SLAM系统 详见之前的博客 > > [基于ORB-SLAM3库搭建SLAM系统 - zylyehuo - 博客园 (cnblogs.com)](https://www.cnblogs.

基于SLAM系统建图仿真,完成定位仿真

博客地址:https://www.cnblogs.com/zylyehuo/ 基于SLAM系统完成建图仿真,详见之前的博客 基于Gazebo搭建移动机器人,并结合SLAM系统完成建图仿真 - zylyehuo - 博客园 参考链接 Autolabor-ROS机器人入门课程《ROS理论与实践》 Par

基于ORB-SLAM3库搭建SLAM系统

> 博客地址:https://www.cnblogs.com/zylyehuo/ ## 参考资料 > [ORB-SLAM3配置及安装教程](https://blog.csdn.net/shadowmimii/article/details/129472719) > [ ORB-SLAM3配置安装及运

基于Gazebo搭建移动机器人,并结合SLAM系统完成建图仿真

博客地址:https://www.cnblogs.com/zylyehuo/ gazebo小车模型创建及仿真详见之前博客 gazebo小车模型(附带仿真环境) - zylyehuo - 博客园 gazebo+rviz 仿真 - zylyehuo - 博客园 参考链接 Autolabor-ROS机器人

移动机器人运动规划及运动仿真

博客地址:https://www.cnblogs.com/zylyehuo/ 基于[基于SLAM系统建图仿真,完成定位仿真],详见之前的博客 基于SLAM系统建图仿真,完成定位仿真 - zylyehuo - 博客园 参考链接 Autolabor-ROS机器人入门课程《ROS理论与实践》 环境配置 u

SLAM建图导航信息(仿真)

> 博客地址:https://www.cnblogs.com/zylyehuo/ > 基于[基于机器人自主移动实现SLAM建图],详见之前的博客 > > [基于机器人自主移动实现SLAM建图 - zylyehuo - 博客园](https://www.cnblogs.com/zylyehuo/p/1

《机器人SLAM导航核心技术与实战》第1季:第6章_机器人底盘

《机器人SLAM导航核心技术与实战》第1季:第6章_机器人底盘 视频讲解 【第1季】6.第6章_机器人底盘-视频讲解 【第1季】6.1.第6章_机器人底盘_底盘运动学模型-视频讲解 【第1季】6.2.第6章_机器人底盘_底盘性能指标-视频讲解 【第1季】6.3.第6章_机器人底盘_典型机器人底盘搭建

基于机器人自主移动实现SLAM建图

> 博客地址:https://www.cnblogs.com/zylyehuo/ > 基于[移动机器人运动规划及运动仿真],详见之前的博客 > > [移动机器人运动规划及运动仿真 - zylyehuo - 博客园](https://www.cnblogs.com/zylyehuo/p/1740070

Gazebo、Rviz 结合 ORB-SLAM3 实现运动规划及定位

> 博客地址:https://www.cnblogs.com/zylyehuo/ > 基于以下内容,详见博客链接 > > [基于机器人自主移动实现SLAM建图 - zylyehuo - 博客园 (cnblogs.com)](https://www.cnblogs.com/zylyehuo/p/174

代价地图组成(多层叠加)

博客地址:https://www.cnblogs.com/zylyehuo/ 参考链接 Autolabor-ROS机器人入门课程《ROS理论与实践》 1、静态层 SLAM绘制的静态地图 2、障碍物层 导航中传感器感知的障碍物 3、膨胀层 为了避免碰撞而设置的安全区域 4、自定义层 根据业务自设置的地