IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录三:使用USB相机运行ORBSLAM -> 正文阅读

[人工智能]从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录三:使用USB相机运行ORBSLAM

从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录三:使用USB相机运行ORBSLAM

前文:
从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(一):安装与配置
从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(二):相机测试与标定

1 编译ROS_ORBSLAM

进入ORB_SLAM2项目根目录直接运行

chmod +x ./build_ros.sh
./build_ros.sh

一般情况下会遇到若干错误,例如

错误1 /usr/bin/ld: CMakeFiles/RGBD.dir/src/ros_rgbd.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’
/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
「解决方法」
在ORBSLAM2/Examples/ROS/ORBSLAM2下的Cmakelists.txt中添加一行

    set(LIBS ${OpenCV_LIBS} 
    ${EIGEN3_LIBS} 
    ${Pangolin_LIBRARIES} 
    ${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so 
    ${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so 
    ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so 
    -lboost_system		# 添加这行 
    )

2 启动ORBSLAM

# 终端A运行ROS
roscore
# 终端B启动相机
roslaunch usb_cam usb_cam-test.launch
# 终端C启动ORBSLAM
rosrun ORB_SLAM2 Mono /home/winter/Project/SLAM/ORBSLAM2/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/winter/Project/SLAM/ORBSLAM2/ORB_SLAM2/Examples/ROS/ORB_SLAM2/my_cam.yaml

注意:my_cam.yaml用从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(二):相机测试与标定的标定文件,否则可能出现始终无法初始化帧(TRYING INITIALIZATION)的情况。

这里记录几个常见的也是本文遇到的错误

错误2

OpenCV Error: Bad argument (Invalid pointer to file storage) in cvGetFileNodeByName, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/persistence.cpp, line 861
terminate called after throwing an instance of ‘cv::Exception’
what(): /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/persistence.cpp:861: error: (-5) Invalid pointer to file storage in function cvGetFileNodeByName
已放弃 (核心已转储)

错误分析:很显然,该错误由Opencv引起,叙述为“严重冲突”,查阅资料得知是opencv的版本问题,ros自带的opencv版本为3.3.1

winter@Winter:~$ find /opt/ros/ -name opencv
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv

与编译ORBSLAM工程时使用的openCV版本不同,例如本文使用的是opencv2.4.11,产生版本冲突,具体地,体现在编译时的警告信息中:

Linking CXX executable ../Mono
/usr/bin/ld: warning: libopencv_core.so.2.4, needed by ../../../../lib/libORB_SLAM2.so, may conflict with libopencv_core.so.3.3
[100%] Built target Mono
Linking CXX executable ../RGBD
Linking CXX executable ../Stereo
/usr/bin/ld: warning: libopencv_core.so.2.4, needed by ../../../../lib/libORB_SLAM2.so, may conflict with libopencv_core.so.3.3

解决方法简言之就是:更改链接库为3.3.1,重新编译工程。

(1) 删除ORB_SLAM2、DBoW2以及ROS/ORB_SLAM2/src下的build文件
(2) 更改ORB_SLAM2、DBoW2以及ROS/ORB_SLAM2/src下的CMakeList文件

set(OpenCV_DIR "/usr/local/include/opencv331/share/OpenCV")
find_package(OpenCV 3.3.1 QUIET)
if(NOT OpenCV_FOUND)
   find_package(OpenCV 2.4.3 QUIET)
   if(NOT OpenCV_FOUND)
      message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
   endif()
endif()

链接到opencv3.3.1位置。

(3) 在ORB_SLAM2根目录下执行

./build.sh
./build_ros.sh

重新运行项目,问题解决。

错误3 ORBSLAM始终处于WAITING FOR IMAGES状态
解决方法:进入catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src 修改ros_mono.cc。

# ros::Subscriber sub = nodeHandler.subscribe
# ("/camera/image_raw", 1, &ImageGrabber::GrabImage,&igb);

 ros::Subscriber sub = nodeHandler.subscribe
("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);

重新编译

./build_ros.sh

问题解决。

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:00:22  更:2021-08-28 09:21:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/1 10:26:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码