【聚看点】SLAM系统--开启摄像头连接

博客园   2023-05-28 21:37:41

博客地址: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 -8import rospyfrom sensor_msgs.msg import Imageimport cv2from cv_bridge import CvBridgeimport 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

将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 编译问题解决